使用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); });