diff options
author | tomsmeding <tom.smeding@gmail.com> | 2016-09-13 11:43:06 +0200 |
---|---|---|
committer | tomsmeding <tom.smeding@gmail.com> | 2016-09-13 11:44:11 +0200 |
commit | f00ba92ed2cc1a9c24ad783e83525d1b5a85b857 (patch) | |
tree | 4d1c00a47c7f3842bcf3dece83d3c00ed3ae459f /modules/poke/poke.js |
Initial
Diffstat (limited to 'modules/poke/poke.js')
-rw-r--r-- | modules/poke/poke.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/modules/poke/poke.js b/modules/poke/poke.js new file mode 100644 index 0000000..af0285d --- /dev/null +++ b/modules/poke/poke.js @@ -0,0 +1,47 @@ +var cmn=require("../$common.js"), + fs=require("fs"), + Naampje=require("naampje").name; + +var conns=[]; + +var uniqid=(function(){ + var id=0; + return function(){return id++;}; +})(); + +module.exports=function(app,io,moddir){ + var ioNsp=io.of("/poke"); + app.get("/poke",function(req,res){ + res.sendFile(moddir+"/poke.html"); + }); + ioNsp.on("connection",function(socket){ + var id=uniqid(); + var nick=Naampje(); + var status=""; + socket.emit("reset",null); + socket.emit("self",{id:id,nick:nick}); + conns.forEach(function(c){ + socket.emit("connection add",{id:c.id,nick:c.nick}); + socket.emit("status",{id:c.id,status:c.status}); + }); + ioNsp.emit("connection add",{id:id,nick:nick}); + conns.push({id:id,nick:nick,status:"",socket:socket}); + socket.on("disconnect",function(){ + for(var i=0;i<conns.length;i++)if(conns[i].id==id)break; + if(i!=conns.length)conns.splice(i,1); + ioNsp.emit("connection remove",id); + }); + socket.on("status",function(newst){ + status=newst.toString(); + for(var i=0;i<conns.length;i++)if(conns[i].id==id)break; + if(i==conns.length)return; //? + conns[i].status=status; + ioNsp.emit("status",{id:id,status:status}); + }); + socket.on("poke",function(target){ + for(var i=0;i<conns.length;i++)if(conns[i].id==target)break; + if(i==conns.length)return; //hah. + conns[i].socket.emit("poke",id); + }); + }); +}; |