diff options
Diffstat (limited to 'server/ws.js')
| -rw-r--r-- | server/ws.js | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/server/ws.js b/server/ws.js index 92c7d5a..67f5f60 100644 --- a/server/ws.js +++ b/server/ws.js @@ -11,7 +11,8 @@ ws.listen = function(app){ ws.add = function(name){ if (name in rooms) { return } var room = rooms[name] = {} - var messages = room.messages = [] + room.messages = [] + room.settings = {} room.users = {} sockets = {} console.log("new room >> " + name) @@ -24,26 +25,34 @@ ws.add = function(name){ socket.on('join', function(data){ nick = data.nick + console.log("join >> " + nick) if (sockets[nick]) { // already connected? sockets[nick].disconnect() - sockets[nick] = socket - room.users[nick] = true - socket.emit("welcome", room) - ns.emit('joined', data) } + sockets[nick] = socket + room.users[nick] = true + socket.emit("welcome", room) + ns.emit('joined', data) }) socket.on('message', function(data){ - if (messages.length > 20) { messages.shift() } - messages.push(data) + if (room.messages.length > 20) { room.messages.shift() } + room.messages.push(data) ns.emit('message', data) }) + socket.on('settings', function(data){ + Object.keys(data).forEach(function(key){ + room.settings[key] = data[key] + }) + ns.emit('settings', data) + }) + socket.on('disconnect', function(){ delete sockets[nick] delete room.users[nick] - ns.emit('parted', {nick:nick}) + ns.emit('parted', {nick: nick}) }) }) |
