使用node.js显示当前用户的数量

我以某种方式设法凑在一起的本地节点服务器。 所有我想要做的是当用户连接到服务器,更新一个整数。 我只是无法find跟踪node.js代码中当前用户的内容。

if(newUserConnects){ currentUsers += 1; } else if(userDisconnects){ currentUsers -= 1; } 

我对服务器端编程非常新颖(我已经做了一些PHP,但没有直接与服务器请求交互)。

你可能想看看使用socket.io 。 它提供了可以轻松计数和更新代码的钩子。

我build立了一个这样的应用程序: http : //xjamundx.no.de

源代码在这里: https : //github.com/xjamundx/CollabPaintJS/blob/master/server.js

看看我用countvariables做什么。

 var count = 0 socket.on('connection', function(client) { count++; client.broadcast({count:count}) client.on('disconnect', function(){ count--; }) }) 

希望有所帮助!

客户端代码在这里: https : //github.com/xjamundx/CollabPaintJS/blob/master/public/collabpaint.js

仅供参考,我的应用程序是使用早期版本的socket.io构build的,因此语法稍有改变!

谢谢Jamund,真的很简单有效的解决scheme。 这是我的代码:

server.js (Node-0.6.6)

 var io = require('socket.io').listen(7777); var count = 0 io.sockets.on('connection', function(socket) { count++; io.sockets.emit('message', { count: count }); io.sockets.on('disconnect', function(){ count--; io.sockets.emit('message', { count: count }); }) }); 

client.js (jQuery 1.6.4)

 var socket = io.connect('http://domain.com:7777'); socket.on('message', function (data) { console.log(data.count); }); 

经过testing并与之合作:

  • 节点v0.12.2(服务器)
  • Socket.io v0.9.17(服务器)
  • jQuery v1.11.3(客户端)

server.js

 var io = require('socket.io').listen(8080); var count = 0 io.sockets.on('connection', function(socket) { count++; io.sockets.emit('message', { count: count }); socket.on('disconnect', function(){ count--; io.sockets.emit('message', { count: count }); }) }); 

client.js

 var socket = io.connect('http://localhost:8080'); socket.on('message', function (data) { console.log(data.count); });