I would like to broadcast a message to all open sockets as a result of a non-socket related event, e.g. as a result of a timeout. How do I do this? Should I keep an array of all open sockets and send them a message one by one? Is there a better way?
Note: The broadcasting example in socket.io guide sends a broadcast message in response to a socket connection, so it has a handle to a socket. Even then it says
Broadcasting means sending a message to everyone else except for the socket that starts it.
Edit
To clarify my question – I want to “send a message” to all open sockets. This action is NOT triggered by any socket, so there is no “this socket”. For example, some business logic on the server decides that an order is now executed. This information needs to be sent to all open sockets. What’s the best way to do this? (This is not “broadcasting” as socket.io defines it.)
So basically you need to get all connected clients to your socket
This will emit to all of your connected clients.