socket.io.users
This is a node js module for socket.io applications. This module finds and manages which socket is from who and visa versa.
One user per person. User means: Unlimited (new) browser tabs/windows but same machine. OR client can pass custom authorized id and have one user with it's sockets per group of different machines.
Make use of the middleware.
Installation
$ npm install socket.io.users
[NPM] https://www.npmjs.com/package/socket.io.users
Live Example (Greek language)
Go to http://chat.ideopod.com
Usage
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var socketUsers = require('socket.io.users');
socketUsers.Session(app);
var rootIo = require('socket.io')(server);
var chatIo = rootIo.of('/chat');
var rootUsers = socketUsers.Users;
var chatUsers = socketUsers.Users.of('/chat');
rootIo.use(socketUsers.Middleware());
chatUsers.use(socketUsers.Middleware());
chatUsers.on('connected',function(user){
console.log(user.id + ' has connected to the CHAT');
user.set('username', 'username setted by server side');
user.socket.on('any event', function(data){
});
chatIo.emit('set username',user.get('username'));
});
rootUsers.on('connected',function(user){
console.log('User has connected with ID: '+ user.id);
});
rootUsers.on('connection',function(user){
console.log('Socket ID: '+user.socket.id+' is user with ID: '+user.id);
});
rootUsers.on('disconnected',function(user){
console.log('User with ID: '+user.id+'is gone away :(');
});
rootIo.on('connection',function(socket){
console.log('IO DEBUG: Socket '+ socket.id+ ' is ready \n');
});
Look at the Example folder for a complete example using: Server side: express js,socket.io,socket.io.users. Client side: AngularJS,socket.io,bootstrap,jquery.