socketio-over-nodejs

3.0.3 • Public • Published

Socket.io over Node.js / Demo

npm downloads

socket.io over node.js for webrtc-signaling!

server.js file

This is the file that I was running on https://webrtcweb.com:9559/. I'll recommend to modify and use this file.

npm install socketio-over-nodejs

How to use?

In ui.js files you can find openSocket method; or in all libraries; you can find openSignalingChannel method.

var SIGNALING_SERVER = 'https://socketio-over-nodejs2.herokuapp.com:443/';
connection.openSignalingChannel = function(config) {
   var channel = config.channel || this.channel || 'default-namespace';
   var sender = Math.round(Math.random() * 9999999999) + 9999999999;
   
   io.connect(SIGNALING_SERVER).emit('new-channel', {
      channel: channel,
      sender : sender
   });
   
   var socket = io.connect(SIGNALING_SERVER + channel);
   socket.channel = channel;
   
   socket.on('connect', function () {
      if (config.callback) config.callback(socket);
   });
   
   socket.send = function (message) {
        socket.emit('message', {
            sender: sender,
            data  : message
        });
    };
   
   socket.on('message', config.onmessage);
};

io.connect(URL).emit('new-channel') starts a new namespace that is used privately or publicly to transmit/exchange appropriate stuff e.g. room-details, participation-requests, SDP, ICE, etc.

openSocket

var config = {
    openSocket: function (config) {
        var SIGNALING_SERVER = 'https://socketio-over-nodejs2.herokuapp.com:443/';
 
        config.channel = config.channel || location.href.replace(/\/|:|#|%|\.|\[|\]/g, '');
        var sender = Math.round(Math.random() * 999999999) + 999999999;
 
        io.connect(SIGNALING_SERVER).emit('new-channel', {
            channel: config.channel,
            sender: sender
        });
 
        var socket = io.connect(SIGNALING_SERVER + config.channel);
        socket.channel = config.channel;
        socket.on('connect', function () {
            if (config.callback) config.callback(socket);
        });
 
        socket.send = function (message) {
            socket.emit('message', {
                sender: sender,
                data: message
            });
        };
 
        socket.on('message', config.onmessage);
    }
};
 

Presence Detection

You can detect presence of a room like this:

var SIGNALING_SERVER = 'https://socketio-over-nodejs2.herokuapp.com:443/';
function testChannelPresence(channel) {
    var socket = io.connect(SIGNALING_SERVER);
    socket.on('presence', function (isChannelPresent) {
        console.log('is channel present', isChannelPresent);
        if (!isChannelPresent) startNewSession();
    });
    socket.emit('presence', channel);
}
 
// test whether default channel already created or not!
testChannelPresence('default-channel');

License

Socket.io over Node.js is released under MIT licence . Copyright (c) Muaz Khan.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 3.0.3
    2
    • latest

Version History

Package Sidebar

Install

npm i socketio-over-nodejs

Weekly Downloads

2

Version

3.0.3

License

MIT

Unpacked Size

9.64 kB

Total Files

5

Last publish

Collaborators

  • muaz-khan