Instantly share code, notes, and snippets.

Embed
What would you like to do?
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');
@a2net

This comment has been minimized.

a2net commented Mar 15, 2017

just a nice to addition to the list
// Emit data to a specific user
io.sockets.connected[userSocketId].emit('socketName', 'some text');

@talonbragg

This comment has been minimized.

talonbragg commented Mar 20, 2017

Thanks!

@dankolesnikov

This comment has been minimized.

dankolesnikov commented Mar 22, 2017

Thanks!

@hdd42

This comment has been minimized.

hdd42 commented Mar 29, 2017

thanks

@crustafari

This comment has been minimized.

crustafari commented Apr 15, 2017

Thanks!

@m4l3vich

This comment has been minimized.

m4l3vich commented Apr 15, 2017

Thanks

@twistedpixel

This comment has been minimized.

twistedpixel commented May 4, 2017

@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

This comment has been minimized.

twistedpixel commented May 4, 2017

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

@TRomesh

This comment has been minimized.

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

This comment has been minimized.

vivekchandra007 commented Jun 22, 2017

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

@gnkarn

This comment has been minimized.

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

This comment has been minimized.

SteenPetersen commented Jul 22, 2017

Thanks a lot for this, greatly appreciated=)

@sjain3097

This comment has been minimized.

sjain3097 commented Aug 19, 2017

thanks a lott!!!
it really helped me

@BytesCrafter

This comment has been minimized.

BytesCrafter commented Sep 5, 2017

Thank you man!

@Bablu-rudra

This comment has been minimized.

Bablu-rudra commented Nov 3, 2017

thanks

@toleabivol

This comment has been minimized.

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

This comment has been minimized.

zerosimms commented Dec 20, 2017

Awesome!

@marcalj

This comment has been minimized.

marcalj commented Jan 26, 2018

@alexpchin I love you!

@rohit-khanna

This comment has been minimized.

rohit-khanna commented Feb 1, 2018

Awesome!

@icrisu

This comment has been minimized.

icrisu commented Feb 1, 2018

Thank you!!!

@braedonmerlodev

This comment has been minimized.

braedonmerlodev commented Feb 11, 2018

Thanks

@sudoshreyas

This comment has been minimized.

@GaddMaster

This comment has been minimized.

GaddMaster commented Jun 22, 2018

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

This comment has been minimized.

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

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