Как отправить сообщение к конкретным пользователям?

Привет. Как через socket.io отправить сообщение к конкретным пользователям? Можно кусочек кода? Важна суть, как отправить опр. пользователям. Может, можно сделать, чтобы отправка происходила туда, откуда пришла?
  • Вопрос задан
  • 18643 просмотра
Решения вопроса 1
Aliansys
@Aliansys
Из документации socket.io (отправка сообщений)
// отправить текущему сокету сформировавшему запрос (туда откуда пришла)
socket.emit('message', "this is a test");

// отправить всем пользователям, включая отправителя
io.sockets.emit('message', "this is a test");

// отправить всем, кроме отправителя
socket.broadcast.emit('message', "this is a test");

// отправить всем клиентам в комнате (канале) 'game', кроме отправителя
socket.broadcast.to('game').emit('message', 'nice game');

// отправить всем клиентам в комнате (канале) 'game', включая отправителя
io.sockets.in('game').emit('message', 'cool game');

// отправить конкретному сокету, по socketid
io.sockets.socket(socketid).emit('message', 'for your eyes only');
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Burgul
Чтобы отправить конкретному клиенту используй:
io.sockets.sockets[id].emit('message', 'Hello!');
Где id - sid клиента socket.io.
Чтобы оправить данные с сервера отправителю используй аргумент функции callback:
Сервер:
socket.on('message', function (data,callback) {
        socket.broadcast.emit('message', data);
        callback("Send");
    });

Клиент:
socket.emit('message',msg,function(data) {
        console.log(data);
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы