summaryrefslogtreecommitdiff
path: root/server/ws.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-08-05 12:53:38 -0400
committerJules Laplace <jules@okfoc.us>2015-08-05 12:53:38 -0400
commitb9aaeaf616ed0a46a81e313bede00f1598d245ca (patch)
tree0d2256c9332b6d0ef97bb56e1c771a976f3497db /server/ws.js
parent21e31e46ff167ede7cb5ad4452cbd406236bc83d (diff)
parent3b7da491072e5c366738ff549e8958d97948076a (diff)
mergez
Diffstat (limited to 'server/ws.js')
-rw-r--r--server/ws.js40
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]
+ })
+
+ })
+}