Skip to content

Instantly share code, notes, and snippets.

@impishj
Forked from crtr0/client.js
Last active November 30, 2017 17:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save impishj/bf1aa3121d4bc31d0c92c507aaec5b95 to your computer and use it in GitHub Desktop.
Save impishj/bf1aa3121d4bc31d0c92c507aaec5b95 to your computer and use it in GitHub Desktop.
A simple example of setting-up dynamic "rooms" for socket.io clients to join
// set-up a connection between the client and the server
var socket = io.connect();
// let's assume that the client page, once rendered, knows what room it wants to join
var room = window.location.hash;
socket.on('connect', function() {
// Connected, let's sign-up for to receive messages for this room
socket.emit('room', room);
});
socket.on('message', function(data) {
console.log('Incoming message:', data);
});
whatroom = "living";
// attach Socket.io to our HTTP server
io = socketio.listen(server);
// handle incoming connections from clients
io.sockets.on('connection', function(socket) {
// once a client has connected, we expect to get a ping from them saying what room they want to join
socket.on('room', function(room) {
socket.join(room);
whatroom = room
});
});
// now, it's easy to send a message to just the clients in a given room
io.sockets.in(whatroom).emit('message', 'what is going on, party people?');
// this message will NOT go to the client defined above
io.sockets.in('foobar').emit('message', 'anyone in this room yet?');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment