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