Signalr 浏览器多个选项卡中的不同连接

Signalr 浏览器多个选项卡中的不同连接,signalr,signalr-hub,signalr.client,Signalr,Signalr Hub,Signalr.client,为什么Signal在浏览器中为同一登录用户的多个选项卡建立不同的连接。 有没有办法为同一浏览器中打开的所有选项卡建立一个连接。 从连接来看,我指的是Signal中用户的连接ID。因为同一浏览器的不同选项卡是不同的文档\“流程”-每个选项卡在某种意义上代表客户端应用程序的不同“实例”。无法在它们之间直接共享JavaScript对象(这就是为什么Signal在每个选项卡中打开新连接的原因)。要在不同实例之间共享数据\通信,可以使用HTML5 localStorage机制等 因此,如果您想在选项卡之间

为什么Signal在浏览器中为同一登录用户的多个选项卡建立不同的连接。 有没有办法为同一浏览器中打开的所有选项卡建立一个连接。
从连接来看,我指的是Signal中用户的连接ID。

因为同一浏览器的不同选项卡是不同的文档\“流程”-每个选项卡在某种意义上代表客户端应用程序的不同“实例”。无法在它们之间直接共享JavaScript对象(这就是为什么Signal在每个选项卡中打开新连接的原因)。要在不同实例之间共享数据\通信,可以使用HTML5 localStorage机制等

因此,如果您想在选项卡之间共享一个信号器连接,方法是自己实现,只在一个选项卡中管理连接,并允许每个选项卡都能够从服务器发送/接收消息。你可以使用或从中获得灵感,正是这一点


这也解决了浏览器对单个服务器最大并发连接数的限制。

您还期望什么?多个物理连接共享相同的连接ID?我希望在一个浏览器的多个选项卡中使用相同的连接ID,就像用户会话在一个浏览器的多个选项卡中保持相同一样。这是不可能的。为什么需要它?我不想为一个物理用户建立多个连接,因为在我的应用程序中,该用户的会话只有一个。若我将用户绑定为打开多个选项卡,那个么这将是一个令人恼火的限制。另一方面,一个用户的多个连接对我来说是昂贵的。假设同一个浏览器中有15个打开的标签意味着15个并发的信号连接,但实际用户只是其中之一。在回答直截了当的问题时,我厌倦了这种心态。“你还期望什么?”或者“你为什么需要它?”很明显:同一个用户,多个标签。用户(xyz)应该转到用户,而不是选项卡。正如戴安娜提到的:例如,会话就是这样工作的。我明白为什么这是不可能的,但没有必要尖刻地回答。我想我需要为每个用户ID创建一个“组”,而不是为每个用户ID创建一个“用户”。呃。为什么我们不能共享?我们可以在不同的选项卡中共享javascript对象。如果您想查看流程,请参考下面的链接,打开多个选项卡,并在每个选项卡数据更改的同时选择任何答案,1。我现在在Chrome上试过,没有,在一个标签上回答不会影响另一个标签。2.即使它确实如您所描述的那样工作,但这并不意味着您可以在选项卡之间共享JavaScript实例。如果您需要在选项卡\浏览器窗口之间共享数据\通信,则需要使用HTML5 localStorage mechanim之类的工具…感谢github链接,awesome项目。我是说这个