使用SignalR刷新页面后多个客户端调用

时间:2014-03-21 15:42:50

标签: c# asp.net-mvc signalr

我们有一个使用Signal R 1.1.3的多个集线器的应用程序,它监视当前登录的用户。集线器使用以下脚本定期刷新用户计数

     $.extend(sr_users.client, {
    showCurrentUserCount: function (data) {
        console.log("Showing Current Users");
        $('#current-users').html(data);
    }
});

生成以下行

   [xx:xx:xx GMT+0000 (GMT Standard Time)] SignalR: Triggering client hub event 'showCurrentUserCount' on hub 'userhub'.

但是,刷新浏览器时,会多次调用上述客户端集线器事件

  [15:40:20 GMT+0000 (GMT Standard Time)] SignalR: Triggering client hub event 'showCurrentUserCount' on hub 'userhub'.
  [15:40:20 GMT+0000 (GMT Standard Time)] SignalR: Triggering client hub event 'showCurrentUserCount' on hub 'userhub'.

如何防止这种情况发生

谢谢

附加代码

    sr_users = $.connection.userhub;
$.connection.hub.logging = true;

    //update any ui when the hub starts
$.connection.hub.start()
    .done(function () {
        sr_users.server.getCurrentUsers()
        .done(function (users) {
            $('#current-users').html(users);
        });
    });

1 个答案:

答案 0 :(得分:0)

排序了!卫生署!在Hub构造函数上放置一个事件订阅。不好的主意

   public UserHub()
   {
      Connections.Instance.OnPurge += ConnectionsUpdate
   }

因此,每次刷新页面时,都会订阅该事件。我没有完全删除该过程并给出了连接实例访问HUbContext,它可以从中发送给所有客户端