Websocket 信号器出现故障,连接数超过2个

Websocket 信号器出现故障,连接数超过2个,websocket,asp.net-mvc-5,signalr,Websocket,Asp.net Mvc 5,Signalr,我已经用Signal编写了一个相当简单的聊天应用程序 似乎如果我连接超过2个选项卡/浏览器/设备,第三个将挂起,永远不会连接,并最终导致问题 为什么我只能与2个用户连接 第三个请求在我断开另两个请求中的一个后立即通过 不管我使用同一个用户还是不同的用户 我在Windows10上使用IIS,Asp.NETMVC5和Signalr2.2 它从不调用集线器代码,如果我尝试在第四个客户机选项卡打开时连接第四个客户机,那么第四个选项卡甚至不会返回视图。 对于第三个连接,永远不会命中console.log

我已经用Signal编写了一个相当简单的聊天应用程序

似乎如果我连接超过2个选项卡/浏览器/设备,第三个将挂起,永远不会连接,并最终导致问题

为什么我只能与2个用户连接

第三个请求在我断开另两个请求中的一个后立即通过

不管我使用同一个用户还是不同的用户

我在Windows10上使用IIS,Asp.NETMVC5和Signalr2.2

它从不调用集线器代码,如果我尝试在第四个客户机选项卡打开时连接第四个客户机,那么第四个选项卡甚至不会返回视图。

对于第三个连接,永远不会命中console.log

$.connection.hub.start()
命中,并且连接和集线器的值不为null

  public override Task OnConnected()
    {
除非我终止另外两个连接中的一个,否则不会在第三个连接上命中。因此,共享这些方法/函数的内部结构只会让我感到困惑

$.connection.hub.starting(function () {
    console.log('starting')
});
$.connection.hub.received(function () {
    console.log('connection received')
});

在第三个客户机上,在控制台中启动put,但收到的却不是。

我相信,在经历了许多痛苦和挫折之后,我能够找到答案

因为桌面IIS只允许10个并发连接,而websocket连接是如此动态,所以我认为它充当了10个连接,只有2个实际连接。

“不应使用IIS或Cassini的完整版本,因为会有 限制10个同时连接,这将是 由于连接是瞬时的,所以访问速度非常快 重新建立,并且在不再存在时不会立即处置 已使用。应在客户端操作系统上使用IIS Express。“

如果不是这样,请有人纠正我

作为一项工作,我将使用IIS Express,我不想这样做的原因是因为我想让我的网站公开,这样我的同事就可以连接并进行心智测试。我想出了如何将IIS公开到web上,并从命令提示符下运行它,以便在服务器启动时进行开发。 去 c:\Users[YourName]\Documents\IISExpress\config\applicationhost.config

添加(适当替换IP地址和端口):

或者,如果您使用的是64位操作系统,请运行 以下命令:cd\Program Files(x86)\IIS Express运行 以下命令可查看IIS Express使用字符串:


当然,不要忘记端口转发和防火墙穿越。

如果您提供了代码,这将非常有用。谢谢什么是相关的?只是在连接上?整个枢纽?Hub+js?在我关闭浏览器之前,我的Hub onConnected甚至不会被点击。另外,我可以用我想要的用户数连接到asp.net主页,它只是chatHub(signalr)部分。C代码中的任何
静态
$.connection.hub.starting(function () {
    console.log('starting')
});
$.connection.hub.received(function () {
    console.log('connection received')
});
<binding protocol="http" bindingInformation="*:58938:192.168.1.42" />
cd \Program Files\IIS Express 
iisexpress /site:site-name