当打开多个选项卡且为每个选项卡分配了唯一ID时,将无法使用SignalR(请参阅When SignalR made 8-10 connections at a time live chat doesn't work)。
但。我在此stackoverflow问题中描述了一种解决方法。想法是按顺序覆盖connectionid,以便每个打开的选项卡都具有相同的连接ID:因此,从逻辑上讲,在我的特殊情况下,没有理由为每个选项卡都具有唯一的ID,因为每个选项卡都由一个MyApplicationUserId打开。
无论如何,已经在stackoverflow中注意到了(请参阅SignalR How is a duplicate Connection Id handled?),connectionid必须是唯一的。他们说,即将发布的版本中将删除IConnectionIdGenerator。
因此,这是一种盲目的胡同。我必须使用唯一的ID,但不能在打开多个浏览器选项卡的情况下使用SignalR。
谢谢你。
德米特里。
最佳答案
正如您在SignalR问题中所讨论的那样,您已经打开here,大多数现代浏览器都限制了到同一站点的最大并发连接数(通常为6个左右)。
一种解决方法是使用子域,即每个选项卡都连接到不同的子域(这是Facebook使用的方法)。另一个选择是仅启动一个连接,并使用localStorage
作为选项卡之间的消息总线,如FreshCode在此问题中建议的那样:SignalR and Browser Connection limit
关于SignalR,有限的唯一连接(打开的选项卡)IIS8,Windows8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13029069/