Socket.io Identify User for Socket
javascript, node.js, socket.io
Solution
You can start by taking a look at how to configure authorization with Socket.io. The `handshakeData` provided by the callback can be modified there (ie: add a username property), and any changes will be accessible via `socket.handshake` in your app.js (via the object passed in to the callback for `io.sockets.on('connection',..`). Using request header information that's also accessible from the handshakeData, you can set user values within the authorization callback (ie: from a database) so you can identify the user for the given socket in your app.js.
Here's a similar example
Problem
I write some code example that identifi connected users via socket.io... So now I must write a code on index page to comunicate with users. The code is below and HOW to send a message to user[1] "Welcome" and for user[2] "HI men" and also limit connection fr 2 users. so when 2 user connected then anybody else cant connect.. Index.html: ``` <script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect(); var users; socket.on('hello', function (data) { console.log(data.hello); }); socket.on('listing', function (data) { users = data; }); socket.on('chat', function (message) { console.log(message); }); socket.on('message', function (message) { console.log(message); }); function chat (message) { socket.emit('chat', message); } function message (user, message) { socket.emit('message', { user: user, message: message }); } </script> ``` app.js ``` var express = require('express'); var app = express.createServer(); var io = require('socket.io').listen(app); app.listen(3000); app.use(express.static(__dirname)); var users = {}; var userNumber = 1; function getUsers () { var userNames = []; for(var name in users) { if(users[name]) { userNames.push(name); } } return userNames; } io.sockets.on('connection', function (socket) { var myNumber = userNumber++; var myName = 'user#' + myNumber; users[myName] = socket; socket.emit('hello', { hello: myName }); io.sockets.emit('listing', getUsers()); socket.on('chat', function (message) { io.sockets.emit('chat', myName + ': ' + message); }); socket.on('message', function (data) { users[data.user].emit('message', myName + '-> ' + data.message); }); socket.on('disconnect', function () { users[myName] = null; io.sockets.emit('listing', getUsers()); }); }); app.listen(process.env.PORT); ```