diff options
| author | Jules Laplace <jules@okfoc.us> | 2015-08-05 12:53:38 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2015-08-05 12:53:38 -0400 |
| commit | b9aaeaf616ed0a46a81e313bede00f1598d245ca (patch) | |
| tree | 0d2256c9332b6d0ef97bb56e1c771a976f3497db /server/ws.js | |
| parent | 21e31e46ff167ede7cb5ad4452cbd406236bc83d (diff) | |
| parent | 3b7da491072e5c366738ff549e8958d97948076a (diff) | |
mergez
Diffstat (limited to 'server/ws.js')
| -rw-r--r-- | server/ws.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/server/ws.js b/server/ws.js new file mode 100644 index 0000000..860319a --- /dev/null +++ b/server/ws.js @@ -0,0 +1,40 @@ + +var server = require('socket.io') + +var ws = module.exports = {} + +var rooms = {} + +ws.listen = function(app){ + ws.io = server(app) +} +ws.add = function(name){ + if (name in rooms) { return } + var room = {} + room.users = {} + + var ns = base.io.of('/' + name) + + ns.on('connection', function(socket){ + + var username + + socket.on('join', function(data){ + username = data.username + if (room.users[username]) { + // already connected? + room.users[username].disconnect() + room.users[username] = socket + } + }) + + socket.on('message', function(data){ + ns.emit('message', data) + }) + + socket.on('disconnect', function(){ + delete room.users[username] + }) + + }) +} |
