I\'m trying to implement a system with two clients one of them sends a message and the other one shall receive it. The figure below will explain it in a more visual way:
The function passed to .on
is called for each socket to do the initialization (binding events etc), and socket
refers to that current socket. This will be client 1 when you receive a push
message, because the handler function is bound to the push
event of that socket
- you bound that function when client 1 connected (where socket
refers to client 1).
io.sockets
refers to all sockets connected, so including client 2 in your case.
Another aspect which you could take into consideration is the use of :
socket.broadcast.emit('push', { hello: 'world' });
Which would essentially send the message to all the connected clients except the one that originated the message. Removing the task of filtering clients/reducing unnecessary traffic to the originating socket.
Socket.IO on GitHub - Under broadcasting.