Socket.IO - how to emit event to everybody in the room, including sender?
Asked Answered
A

2

7

In my Socket.Io / Node.Js / Express app - before I added chat room – I used to emit events like this for everyone (including the sender):

io.emit('chat message', msg);

Now I added rooms and try to do the same thing using

socket.broadcast.to(socket.room).emit('chat message', msg);

or

socket.to(socket.room).emit('chat message', msg);

but both only send the message to receivers, but not to the sender.

What should I do so that this message also goes to the sender, who's in the chat room as well?

Atlantean answered 17/4, 2015 at 17:36 Comment(1)
maybe just adding another socket.emit() will doWithstand
A
10

Found an answer in this question: Socket.io Won't Emit messages to rooms on discconect

simply use

io.sockets.in(socket.room).emit('chat message', msg);
Atlantean answered 17/4, 2015 at 17:51 Comment(1)
what is "io.sockets" is not available, and only "socket" isWithstand
M
1

Found an answer on one of Socket.IO GitHub issues.

socket.nsp.to(room).emit(event);
Multiflorous answered 16/1 at 16:2 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.