diff options
Diffstat (limited to 'server/ws.js')
| -rw-r--r-- | server/ws.js | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/server/ws.js b/server/ws.js index 860319a..5819b94 100644 --- a/server/ws.js +++ b/server/ws.js @@ -10,30 +10,35 @@ ws.listen = function(app){ } ws.add = function(name){ if (name in rooms) { return } - var room = {} + var room = rooms[name] = {} room.users = {} + sockets = {} var ns = base.io.of('/' + name) ns.on('connection', function(socket){ - var username + var nick socket.on('join', function(data){ - username = data.username - if (room.users[username]) { + nick = data.nick + if (sockets[nick]) { // already connected? - room.users[username].disconnect() - room.users[username] = socket + sockets[nick].disconnect() + sockets[nick] = socket + room.users[nick] = true } }) socket.on('message', function(data){ + if (messages.length > 20) { messages.shift() } + messages.push(data) ns.emit('message', data) }) socket.on('disconnect', function(){ - delete room.users[username] + delete sockets[nick] + delete room.users[nick] }) }) |
