2016-12-30 2 views
0

У меня есть небольшое приложение для чата. Я хочу отправить сообщение только последнему или последнему пользователю, чтобы присоединиться к чату. , когда я использую:Sockets IO broadcast issue

socket.broadcast.emit('chat message'); 

Это (трансляция) делает противоположное тому, что я хотел бы сделать. Есть ли другая встроенная функция, которую я могу использовать вместо трансляции? Я также пробовал испускать без трансляции, и это посылает всем. Буду признателен за любую помощь. Thansk.

+0

Вы можете создать '' room' и broadcast' сообщений для пользователей, которые не находятся в комнате для получения более подробной информации читайте эту часть [Socket.io ] (http://socket.io/docs/server-api/#socket#in (room: string): socket) –

+2

'socket.emit()' отправляет только этому конкретному сокету. Вот как вы отправляете один сокет. Получите правильный объект 'socket' и вызовите' .emit() 'на нем. – jfriend00

ответ

0

socket.emit() отправляет только этому конкретному разъему. Вот как вы отправляете один сокет.

Итак, получите желаемый объект сокета и позвоните по номеру socket.emit().

.broadcast(), с другой стороны, посылает ко всем разъемам, если называемых в io объекта или ко всем разъемам, но текущий при использовании с socket.broadcast.emit().

Вот довольно хорошее резюме различных вариантов: https://stackoverflow.com/a/10099325/816620