Node.js Nodejs实时在线用户计数器
我有一个网站,使用nodejs和socket.io实现了一个实时在线用户计数器。代码如下:Node.js Nodejs实时在线用户计数器,node.js,google-analytics,socket.io,Node.js,Google Analytics,Socket.io,我有一个网站,使用nodejs和socket.io实现了一个实时在线用户计数器。代码如下: $io.on('connection', function (socket) { var $ip_address = socket.handshake.address; if ($ips_connected.hasOwnProperty($ip_address)) { $ips_connected[$ip_address]++; } else {
$io.on('connection', function (socket) {
var $ip_address = socket.handshake.address;
if ($ips_connected.hasOwnProperty($ip_address)) {
$ips_connected[$ip_address]++;
} else {
$ips_connected[$ip_address] = 1;
$connected_users++;
if ($connected_users > $max_users)
$max_users = $connected_users;
}
socket.emit('update', $connected_users);
socket.on('disconnect', function () {
if ($ips_connected.hasOwnProperty($ip_address)) {
$ips_connected[$ip_address]--;
if ($ips_connected[$ip_address] <= 0) {
delete $ips_connected[$ip_address];
$connected_users--;
}
}
});
socket.on('update', function () {
socket.emit('update', $connected_users);
});
});
$io.on('connection',函数(socket){
var$ip_address=socket.handshake.address;
如果($ips\u connected.hasOwnProperty($ip\u address)){
$ips_connected[$ip_address]++;
}否则{
$ips_connected[$ip_address]=1;
$connected_users++;
如果($connected\u users>$max\u users)
$max_users=$connected_users;
}
发出('update',$connected_users);
socket.on('disconnect',function(){
如果($ips\u connected.hasOwnProperty($ip\u address)){
$ips_connected[$ip_address]--;
如果($ips\u connected[$ip\u address]我在某些浏览器中看到过一些场景,如IE8、IE6和其他不记得的浏览器……socket.io常见的情况是,断开连接
并自动重新启动,而不调用断开连接
。
我的建议是为每个连接生成一个唯一的id,以控制它是否真的是一个新连接