Звонок отправителю Socket.broadcast тоже - PullRequest
0 голосов
/ 24 марта 2019

Я использую сокеты для отправки координат по событиям мыши.Все работает нормально, но socket.broadcast тоже запускает отправителя.Я предполагаю, что socket.broadcast тоже не должен вызывать себя, но как-то это происходит здесь.

Вот моя клиентская сторона emit

ball.onmousedown = function(event) {
    var coords = [event.pageX, event.pageY];
    socket.emit('ballMouseDown', coords);
}

Моя серверная сторона, здесь все отлично работает

socket.on('ballMouseDown', function (coords) {
    socket.broadcast.emit('ballMouseDown', coords);
});

И снова моя клиентская сторона

[EDIT] Этот следующий фрагмент находится в отдельном общедоступном файле JS.Если я положу его в файл index.html, трансляция работает нормально.

socket.on('ballMouseDown', function(coords){
    // fired in the sender's console too
    console.log(coords);
})

Координаты отображаются в консоли других пользователей, как и ожидалось, но они также находятся в консоли отправителя и запускаются той же строкой в ​​приемнике socket.on.

У меня естьСобытие сообщения в этих файлах запускается на стороне клиента кнопкой отправки формы, и здесь socket.broadcast работает нормально.Может быть проблема с событием мыши, но я пока не нашел ничего связанного с этим.

1 Ответ

0 голосов
/ 25 марта 2019

Я нашел проблему.Это не отдельный файл, а то, как я его называю.Если я поставлю <script src="js/draganddrop.js"></script> в конце моего файла index.html, он будет работать как положено.Я думаю, что это время загрузки, потому что ничего не нужно вызывать перед файлом.

Так что это решило мою проблему.Надеюсь, это кому-нибудь поможет.

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