我正在使用SignalR中心注册我的客户端,如下所示:
self.connect = () => {
hub = $.connection.instantMessageHub;
hub.client.receiveMessage = receiveMessage;
hub.client.receiveCommand = receiveCommand;
$.connection.hub.logging = true;
$.connection.hub.start();
}
在 Chrome 中,在初始页面加载或软重新加载(F5)时,客户端不会订阅集线器,因此不会收到任何消息。打开日志记录会验证这一点,即以下行不显示:
[格林尼治标准时间+格林威治标准时间17:12:50(格林威治标准时间标准时间)] SignalR:客户订阅了集线器'instantmessagehub'。
但是,重新加载(Ctrl-F5)会将Chrome客户端连接到集线器。在所有情况下,相同的代码在IE和Firefox中都能正常运行,并且在Chrome客户端无法订阅时肯定会受到影响。
那么在 Chrome ?
中会导致这种不一致的集线器订阅行为的原因是什么?答案 0 :(得分:0)
在单步执行SignalR代码后,我意识到由于调用...而连接正在启动两次。
$.connection.hub.start();
...在两个不同的地方,因为我试图初始化两个独立的集线器。
我选择将两个集线器合并为一个,因为它更有意义。
我不确定为什么这个问题被Chrome隔离了......