2014-12-21 2 views
1
стороны

сервера: стороныSocketio отправить сообщение конкретному клиенту в пространстве имен

io.of('/lobby').on('connection', function(client) { 
    setInterval(function(){ 
     io.to(client.id).emit('message','test'); 
    },2000); 
}); 

клиента:

var ioLobby = io.connect('127.0.0.1:9001/lobby'); 
ioLobby.on('message',function(data){ 
    console.log(data); 
}); 

Я пытаюсь отправить сообщение конкретному клиенту в Socket.io версии 1.2. 1. Я проверил, что сокет соединяется с комнатой по умолчанию на стороне сервера, но не запускается на стороне клиента. Есть идеи?

ответ

0

я скомпрометированы, и в конечном итоге с помощью

socket.emit() 

Единственный недостаток по сравнению требует, реф к который вы используете.

0

Линия io.to (client.id) будет работать только в том случае, если этот пользователь впервые присоединился к комнате с тем же именем. Вам нужно что-то вроде

io.on('connection', function(socket){ 
    socket.join('some room'); 
}); 

, а затем вы можете позвонить io.to

io.to('some room').emit('some event'): 
+0

Все клиенты автоматически присоединяются к комнате, имя которой является ее идентификатором клиента при подключении. –

+0

Возможно, что на вашей стороне клиента вы вызываете вторую строку до того, как ioLobby завершит настройку соединения –