Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save GQAdonis/a13663a8f9cf076e93b4 to your computer and use it in GitHub Desktop.

Select an option

Save GQAdonis/a13663a8f9cf076e93b4 to your computer and use it in GitHub Desktop.

Revisions

  1. @mikermcneil mikermcneil created this gist Sep 17, 2013.
    45 changes: 45 additions & 0 deletions using-raw-socket-io-in-sails.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,45 @@
    module.exports = {

    /**
    *
    * Using raw socket.io functionality from a Sails.js controller
    *
    */

    index: function (req,res) {

    var socket = req.socket;
    var io = sails.io;

    // emit to all sockets (aka publish)
    // including yourself
    io.sockets.emit('messageName', {thisIs: 'theMessage'});

    // broadcast to a room (aka publish)
    // excluding yourself, if you're in it
    socket.broadcast.to('roomName').emit('messageName', {thisIs: 'theMessage'});

    // emit to a room (aka publish)
    // including yourself
    io.sockets.in('roomName').emit('messageName', {thisIs: 'theMessage'});

    // Join a room (aka subscribe)
    // If you're in the room already, no problem, do nothing
    // If the room doesn't exist yet, it gets created
    socket.join('roomName');

    // Leave a room (aka unsubscribe)
    // If you're not in the room, no problem, do nothing
    // If the room doesn't exist yet, no problem, do nothing
    socket.leave('roomName');

    // Get all connected sockets in the app
    sails.io.sockets.clients();

    // Get all conneted sockets in the room, "roomName"
    sails.io.sockets.clients('roomName');


    }

    };