Я хочу отправить данные на один конкретный идентификатор сокета.
Раньше мы могли это делать в более старых версиях:
io.sockets.socket(socketid).emit('message', 'for your eyes only');
Как мне сделать что-то подобное в Socket.IO 1.0?
Я хочу отправить данные на один конкретный идентификатор сокета.
Раньше мы могли это делать в более старых версиях:
io.sockets.socket(socketid).emit('message', 'for your eyes only');
Как мне сделать что-то подобное в Socket.IO 1.0?
В socket.io 1.0 они предоставляют лучший способ для этого. Каждый сокет автоматически присоединяется к комнате по умолчанию по собственному идентификатору. Проверьте документы: http://socket.io/docs/rooms-and-namespaces/#default-room
Таким образом, вы можете отправить в сокет по идентификатору со следующим кодом:
io.to(socketid).emit('message', 'for your eyes only');
В socket.io 1.0 это можно сделать с помощью следующего кода:
Обновить:
Ответ @ MustafaDokumacı содержит лучшее решение.
источник
@Mustafa Dokumacı и @Curious уже предоставили достаточно информации, я добавляю, как вы можете получить идентификатор сокета.
Чтобы получить идентификатор сокета, используйте socket.id :
источник
Если вы использовали пространство имен, я обнаружил, что работает следующее:
Подробнее о пространствах имен: http://socket.io/docs/rooms-and-namespaces/
источник
Я считаю, что и @Curious, и @ MustafaDokumacı предоставили решения, которые работают хорошо. Однако разница в том, что с решением @ MustafaDokumacı сообщение транслируется в комнату, а не только конкретному клиенту.
Разница заметна, когда запрашивается подтверждение.
работает как положено, а
терпит неудачу с
источник
в Node.js -> socket.io -> есть пример чата для загрузки Вставьте это в строку (io при подключении). Я использую этот код, который работает на 100%
источник