Socket.io:同一图像不会连续发送两次



我有聊天应用程序,它具有您可以发送图像的功能,但现在我发现它不能连续发送两张图像两次,但您可以像这样发送两次相同的图像

-发送图像 1

-发送图像 2

-发送图像 1

我还有功能,您可以粘贴图像并发送(剪贴板(,它可以连续发送图像,所以我感到困惑是什么原因造成的?这里是我的代码:

客户端:

document.getElementById('fileselect').addEventListener('change', function () {
   if (this.files.length != 0) {
      var file = this.files[0],
          reader = new FileReader();
    reader.onload = function (e) {
       this.value = '';
       socket.emit('img', {
            image: e.target.result
       })
    };
       reader.readAsDataURL(file);
  };
}, false);

和服务器端

socket.on('img', function(data) {
io.in(socket.current_room).emit('img', {image: data.image, id: socket.id});

怎么了?我该怎么解决

这是因为如果两次选择同一个文件,fileselect元素不会刷新,因此不会触发"change"事件。这里的解决方案:如何检测同一文件的输入类型=文件"更改"?

相关内容

最新更新