From 6276fd8df4a0faa37b92496a6f47a35ba8312de6 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 6 Aug 2015 16:54:40 -0400 Subject: store settings state --- server/ws.js | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'server') 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}) }) }) -- cgit v1.2.3-70-g09d2