在线实时访客 - 多个网站NodeJS,Socket.io

时间:2016-06-01 13:03:40

标签: javascript node.js sockets socket.io

我有实时dashbord的工作代码显示我网络上的当前在线访问者。我希望在多个网站上使用实现的可能性。

WEB A - client.js

var socket = io("ip:port", {reconnection: false});
socket.on('connect', function() {
   socket.emit('join', 'room1'); 
});    
var visitorData = {
  referringSite: document.referrer,
  page: location.pathname,
  room: 'room1'
}
socket.emit('visitor-data', visitorData);

WEB B - client.js

WEB A 相同,但有

socket.emit('join', 'room2');

服务器脚本app.js

io.sockets.on('connection', function(socket){    

    socket.on('join', function(room) {
            socket.join(room);
            io.to(room).emit('updated-stats', computeStats());                            
    });

    socket.on('visitor-data', function(data) {
       visitorsData[socket.id] = data;   
       io.to(data.room).emit('updated-stats', computeStats());
     });

    socket.on('disconnect', function(data) {
     delete visitorsData[socket.id];   
     io.in(room).emit('updated-stats', computeStats());  
  }); 

});

管理员面板WEB A(此处为信息中心)

var socket = io("server:port");
socket.on('connect', function() {
    socket.emit('join', 'room1'); //there i need data only from room1
});    

socket.on('updated-stats', function(data) {
    console.log(data.pages);
    $(".online").html(data.activeUsers);
}); 

我的问题是 - 在 WEB A 的管理面板中,我从WEB A和WEB B 一起获取统计信息。我需要为WEB A和WEB B分离数据。是否可以在加入相同的IP和相同的端口时执行此操作?我不想为个别网站分开创建节点实例。

0 个答案:

没有答案