summaryrefslogtreecommitdiff
path: root/server/ws.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/ws.js')
-rw-r--r--server/ws.js19
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]
})
})