Я использую сокеты для отправки координат по событиям мыши.Все работает нормально, но 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 работает нормально.Может быть проблема с событием мыши, но я пока не нашел ничего связанного с этим.