Socket.io: одно и то же изображение не отправляется два раза подряд - PullRequest
0 голосов
/ 28 мая 2019

У меня есть приложение чата, и у него есть функция, с которой вы можете отправлять изображения, но я обнаружил, что он не может отправлять два изображения два раза подряд, но вы можете отправлять одни и те же изображения два раза, как это

- отправить изображение 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});

Что не так? Что, как я могу это исправить

1 Ответ

1 голос
/ 29 мая 2019

Это потому, что элемент fileselect не обновляется, если вы выбираете один и тот же файл дважды, поэтому событие "change" не запускается.Решение здесь: Как определить тип ввода = файл "изменить" для того же файла?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...