为什么动态内容会在所有浏览器中发生变化?

时间:2016-03-30 14:25:15

标签: node.js socket.io dynamic-data

我有一个node.js应用程序具有基本身份验证,我已经添加了socket.io用于实时消息传递。我使用三种不同的凭据登录三个浏览器。示例

  1. xyz@xyz.com
  2. abc@abc.com
  3. 123@123.com
  4. 每个用户登录后,我将它们添加到当前登录用户列表中,删除当前用户。

    1. 仅针对第3位( 123@123.com )用户 xyz@xyz.com & abc@abc.com 会在线显示。
    2. 仅针对第二( abc@abc.com )用户 xyz@xyz.com & 123@123.com 会在线显示。
    3. 逻辑正常,我从服务器端登录控制台。

        

      但问题是网站上显示的在线用户被最后登录的用户覆盖了所有浏览器

      如果 123@123.com 最后登录。所有浏览器的在线用户列表都会被覆盖 xyz@xyz.com,abc @ abc.com 反之亦然。

        

      结果:

           
          
      1. 第三位用户(123@123.com) xyz@xyz.com& abc@abc.com 在线显示。
      2.   
      3. 第二位用户(abc@abc.com) xyz@xyz.com& abc@abc.com 在线显示。
      4.   
      5. 第一位用户(xyz@xyz.com) xyz@xyz.com& abc@abc.com 在线显示。
      6.   

      客户端更新在线用户的代码。

      $(document).ready(function(){
          var socket = io.connect('http://localhost:3000');
      
          // get the current user email
          var email = $("#email").text();
          socket.emit('user', email);
      
          // list of online users returned from server
          socket.on('users_connected',function (users) {
              updateUsers(users);
          });
      
      
          function updateUsers(users){
              var list = [];
              for(var i =0; i<users.length; i++){
                  var user = "<a href='#'>"+users[i]+"</a>";
                  list.push(user);
                  $( "#users" ).html(list);
              }
          }
      });
      

      需要的答案:

      1. 为什么内容会在浏览器中发生变化。网络应用是不是每个浏览器中应用的新实例?
      2. 如何解决此问题?

0 个答案:

没有答案