2015-09-13 3 views
1

Я создаю игру, используя socket io. Игрок соединяется так:Socket IO - Socket.emit отправляется всем клиентам

var playerName = document.getElementById("name").value; 
socket.emit('setup player', { 
    name : playerName 
}); 

Затем на сервере, игрок настроен и его информация отправляется обратно клиенту:

function onSetupPlayer(data) { 
    ... 
    var newPlayer = new Player(x, y, color, data.name, 
     this.id, scale); 
    socket.emit('setup game', { 
     localPlayer : newPlayer 
    }); 
    ... 
    sockets[this.id] = socket; 
} 

Следующий вызов:

socket.emit('setup game', { 
     localPlayer : newPlayer 
}); 

Следует отправить данные настройки только обратно клиенту, который запросил установку, которая будет выполнена изначально. Однако вызов настройки посылается всем в фойе.

Может ли это иметь какое-либо отношение к тому факту, что я использую localhost для его проверки? Я также тестирую его на одной машине, используя разные вкладки. Если это то, что вызывает проблему, есть ли способ ее решения? Так как это довольно раздражает при тестировании моей игры.

EDIT: Инициализация:

var express = require('express'); 
var app = express(); 
var http = require('http').Server(app); 
var socket = require('socket.io')(http); 
var path = require('path'); 
var io = require('socket.io')(80); 
... 
var setEventHandlers = function() { 
    socket.sockets.on("connection", onSocketConnection); 
}; 

Прослушивание для подключения:

function onSocketConnection(client) { 
    ... 
    client.on("setup player", onSetupPlayer); 
    ... 
}; 

А на стороне клиента, у меня есть это:

var setEventHandlers = function() { 
    socket.on("setup game", onSetupGame); 
    ... 
} 

ответ

0

socket.emit отправить событие все excepts это , Для того, чтобы отправить данные этого пользователю попробовать

io.to(socket).emit() 
+0

Я получаю сообщение об ошибке: ИО не определен – TastyLemons

+0

вара Io = требуется («Socket.io») (80) – trquoccuong

+0

Wil это все еще работает, когда я загрузить на сервер. Или только для местного хозяина? – TastyLemons

Смежные вопросы