Skip to content

Instantly share code, notes, and snippets.

@alexpchin
Created December 15, 2015 16:58
Show Gist options
  • Save alexpchin/3f257d0bb813e2c8c476 to your computer and use it in GitHub Desktop.
Save alexpchin/3f257d0bb813e2c8c476 to your computer and use it in GitHub Desktop.
A quick cheatsheet for socket.io
// sending to sender-client only
socket.emit('message', "this is a test");
// sending to all clients, include sender
io.emit('message', "this is a test");
// sending to all clients except sender
socket.broadcast.emit('message', "this is a test");
// sending to all clients in 'game' room(channel) except sender
socket.broadcast.to('game').emit('message', 'nice game');
// sending to all clients in 'game' room(channel), include sender
io.in('game').emit('message', 'cool game');
// sending to sender client, only if they are in 'game' room(channel)
socket.to('game').emit('message', 'enjoy the game');
// sending to all clients in namespace 'myNamespace', include sender
io.of('myNamespace').emit('message', 'gg');
// sending to individual socketid (server-side)
socket.broadcast.to(socketid).emit('message', 'for your eyes only');
// join to subscribe the socket to a given channel (server-side):
socket.join('some room');
// then simply use to or in (they are the same) when broadcasting or emitting (server-side)
io.to('some room').emit('some event'):
// leave to unsubscribe the socket to a given channel (server-side)
socket.leave('some room');
@hdd42
Copy link

hdd42 commented Mar 29, 2017

thanks

@carlosequiz
Copy link

Thanks!

@m4l3vich
Copy link

Thanks

@twistedpixel
Copy link

@a2net Does io.sockets.connected[userSocketId].emit() still work for you? I'm receiving "cannot read property 'emit'" errors using this. trying to find a good way to send to specific socket that allows callback function (since broadcasts do not).

@twistedpixel
Copy link

@a2net Sorry, my bad: I was using my own identifiers and not socketIO's. face palm

@TRomesh
Copy link

TRomesh commented May 30, 2017

@twistedpixel I had the same issue how did you manage to get it solved?. I saved all the socket.ids in an array and used it to emit to the selected socket. but it doesn't seem to be working. this is the code io.sockets.connected[sockets[data.receiver]].emit('recive',data.message); where sockets[data.receiver] gives the id of the socket.

@vivekchandra007
Copy link

Thanks a ton, brother.
I always wonder why default documentation of a product is so confusing.

@gnkarn
Copy link

gnkarn commented Jun 25, 2017

i would suggest to add the socket.send( , as this is required on the client side of any C++ arduino type web socket library .

@SteenPetersen
Copy link

Thanks a lot for this, greatly appreciated=)

@sjain3097
Copy link

thanks a lott!!!
it really helped me

@BytesCrafter
Copy link

Thank you man!

@Bablu-rudra
Copy link

thanks

@toleabivol
Copy link

toleabivol commented Dec 6, 2017

more info on sending to specific socket:

// sending to individual socketid (private message)
socket.to(socketId).emit('hey', 'I just met you');

It's the same command as for rooms, that's because:
"For your convenience, each socket automatically joins a room identified by this id."

@zerosimms
Copy link

Awesome!

@marcalj
Copy link

marcalj commented Jan 26, 2018

@alexpchin I love you!

@rohit-khanna
Copy link

Awesome!

@icrisu
Copy link

icrisu commented Feb 1, 2018

Thank you!!!

@braedonmerlodev
Copy link

Thanks

@GaddMaster
Copy link

Thanks a2net... Your first comment was exactly what I was looking for...

However, I just learned about rooms, I think I might swap to using rooms

A great cheat sheet, add a2net addition

@piavgh
Copy link

piavgh commented Sep 22, 2018

In the most recent version of socket.io, I think they changed this:

// sending to individual socketid (server-side)
socket.broadcast.to(socketid).emit('message', 'for your eyes only');

to this

// sending to individual socketid (private message)
io.to(`${socketId}`).emit('hey', 'I just met you');

Emit cheatsheet

@PrachipriyaPrasad
Copy link

PrachipriyaPrasad commented Sep 17, 2019

can you please tell me , if i want to send message from one client to another client by user id and session ID how i can send in JAVA .b I'm using socket IO server side. @alexpchin

@rufatZZ
Copy link

rufatZZ commented Nov 12, 2019

THAAAAANKS!!!!!!!!!!!!!

@motaz-hejaze
Copy link

Thanks alot you are awesome
www.sultan.org

@kururu-abdo
Copy link

how to save persistant socket IDs in my app then send from specific socket to specific socket?

@invasionofsmallcubes
Copy link

Hi guys, is there a way to send to everyone in a channel but one specific socket id?
I mean I want to emit a message to everyone but one person who is not the sender. Is it possible I wonder?

@codezerro
Copy link

thanks a lot.

@moaoa
Copy link

moaoa commented Oct 13, 2020

Thanks

@abrar-farhad-nirjhar
Copy link

This is amazing thank you very much!

@pan11kaj
Copy link

pan11kaj commented Jun 3, 2022

Good buddy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment