我们有一个使用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);
});
});
答案 0 :(得分:0)
排序了!卫生署!在Hub构造函数上放置一个事件订阅。不好的主意
public UserHub()
{
Connections.Instance.OnPurge += ConnectionsUpdate
}
因此,每次刷新页面时,都会订阅该事件。我没有完全删除该过程并给出了连接实例访问HUbContext,它可以从中发送给所有客户端