C# 当信号器一次连接8-10个连接时,实时聊天不';行不通

C# 当信号器一次连接8-10个连接时,实时聊天不';行不通,c#,.net,asp.net-mvc-3,signalr,C#,.net,Asp.net Mvc 3,Signalr,我正在开发使用信号器的实时聊天。这是一个很棒的图书馆。但是我解决了一个问题,这个问题在一段时间内我无法解决。所以,当信号员一次连接8-10个网络时,问题就不再存在了。也许是b/c我在本地机器上运行所有程序 我想我可能在什么地方犯了错误。所以我找到了最简单的聊天方式。你可以下载它。 我在10个窗口中打开了它,它不再工作了。信号员或程序员的性能问题是错误的吗?我怎样才能使它工作得更快 我也发现了。而且它对很多人都有效。他们没有做什么特别的,而且效果很好 有人能帮忙解决这个问题吗 非常感谢您的帮助,

我正在开发使用信号器的实时聊天。这是一个很棒的图书馆。但是我解决了一个问题,这个问题在一段时间内我无法解决。所以,当信号员一次连接8-10个网络时,问题就不再存在了。也许是b/c我在本地机器上运行所有程序

我想我可能在什么地方犯了错误。所以我找到了最简单的聊天方式。你可以下载它。 我在10个窗口中打开了它,它不再工作了。信号员或程序员的性能问题是错误的吗?我怎样才能使它工作得更快

我也发现了。而且它对很多人都有效。他们没有做什么特别的,而且效果很好

有人能帮忙解决这个问题吗

非常感谢您的帮助,
Dima。

您可能会遇到两个问题:

  • Windows 7上的IIS/Cassini默认限制为10个并发连接。尝试在Windows Server上运行测试,查看其行为是否相同
  • 尝试在单独的浏览器窗口和/或单独的浏览器和/或计算机中打开连接,而不是选项卡。我注意到,在0.4中,使用选项卡时可能会出现混乱

  • 您可能会遇到两个问题:

  • Windows 7上的IIS/Cassini默认限制为10个并发连接。尝试在Windows Server上运行测试,查看其行为是否相同
  • 尝试在单独的浏览器窗口和/或单独的浏览器和/或计算机中打开连接,而不是选项卡。我注意到,在0.4中,使用选项卡时可能会出现混乱

  • 找到了解决方法:

    重写connectionId,以便在每个选项卡中都有相同的SonConnection id:

     public class MyConnectionFactory : IConnectionIdGenerator
        {
            public string GenerateConnectionId(IRequest request)
            {
                return MyUserManager.Instance.CurrentUserID.ToString();
            }
        }
    
    添加到global.asax:

    GlobalHost.DependencyResolver.Register(typeof(IConnectionIdGenerator), () => new MyConnectionFactory());
    
    我尽可能地打开了马赫标签。所有标签都会收到通知


    希望有帮助。

    找到了解决方法:

    重写connectionId,以便在每个选项卡中都有相同的SonConnection id:

     public class MyConnectionFactory : IConnectionIdGenerator
        {
            public string GenerateConnectionId(IRequest request)
            {
                return MyUserManager.Instance.CurrentUserID.ToString();
            }
        }
    
    添加到global.asax:

    GlobalHost.DependencyResolver.Register(typeof(IConnectionIdGenerator), () => new MyConnectionFactory());
    
    我尽可能地打开了马赫标签。所有标签都会收到通知



    希望有帮助。

    您正在测试哪个web服务器?我正在开发.net应用程序,所以我使用开发ASP.net服务器。问题可能是达到了最大并发连接数。尝试使用vs 2011中运行的iis Express,该版本始终使用iis Express。同样的问题。我打开了10个标签,但不多。10个选项卡如何达到默认情况下由ASP.NET设置的5000个并发连接。也许我可以试试别的?你说的现场聊天不再有效是什么意思?您是否记录了异常或任何错误?您的应用程序的运行状况如何?您正在测试哪个web服务器?我正在开发.net应用程序,因此使用开发ASP.net服务器。问题可能是达到了最大并发连接数。尝试使用vs 2011中运行的iis Express,该版本始终使用iis Express。同样的问题。我打开了10个标签,但不多。10个选项卡如何达到默认情况下由ASP.NET设置的5000个并发连接。也许我可以试试别的?你说的现场聊天不再有效是什么意思?您是否记录了异常或任何错误?应用程序的运行状况如何?您也可以在windows 7上使用iis express。它没有这些限制。@davidfowl,我只有在打开多个选项卡时才会遇到这个问题,但在一个选项卡中,它工作得非常好。你能给我一些关于这方面的信息吗,谢谢当你不使用WebSocket时,你可以打开到特定集线器的并发连接数量是有限制的。我为IIS启用了WebSocket,并且在aspnet.Config文件中增加了对CPU的并发请求,然后我也面临同样的问题。当我检查Fiddler时,请求没有到达服务器,它被冻结(没有得到任何响应)。url如下所示……您也可以在windows 7上使用iis express。它没有这些限制。@davidfowl,我只有在打开多个选项卡时才会遇到这个问题,但在一个选项卡中,它工作得非常好。你能给我一些关于这方面的信息吗,谢谢当你不使用WebSocket时,你可以打开到特定集线器的并发连接数量是有限制的。我为IIS启用了WebSocket,并且在aspnet.Config文件中增加了对CPU的并发请求,然后我也面临同样的问题。当我检查Fiddler时,请求没有到达服务器,它被冻结(没有得到任何响应)。url看起来像这样……我不这么认为。每个连接的连接ID必须是唯一的,否则一切都会崩溃:我在同一个ConnectionId下打开的Chrome和FF上进行了测试,打开了几个选项卡,每个选项卡都会收到来自signalR的通知。如果你能解释一下,我什么时候会遇到问题?”因为我将继续使用这个解决方案,因为它现在起作用了。。谢谢。在我的测试中,对多个连接使用相同的连接id(如打开多个选项卡或浏览器窗口)会导致立即断开连接。如果您没有遇到这种情况,这可能是Chrome和FF中使用的服务器发送事件传输的副作用。正如dfowler(SignalR的创建者)在我链接的问题中提到的,连接ID必须是唯一的。这也是为什么他从即将发布的SignalR版本中删除了
    IConnectionIdGenerator
    ,因此无法生成重复的ID。这意味着,如果用户打开多个选项卡,我们就无法使用SignalR?。。我使用IIS8,如果我们使用唯一连接ID,也会有问题。这是可悲的。也许在ServicePointManager的帮助下我们可以做些什么,但我还没有弄明白。问题是,它在IE9下也能工作,甚至在IIS7下也能工作。这是非常困难的。。。通常,我会试图弄明白为什么有些东西不起作用,但现在我想弄明白为什么它起作用了……)我不这么认为。每个连接的连接ID必须唯一,否则一切都会中断