当 SignalR 一次建立 8-10 个连接时,实时聊天不起作用

本文关键字:连接 实时 不起作用 聊天 8-10 建立 SignalR 一次 | 更新日期: 2023-09-27 18:33:04

我正在使用SignalR开发实时聊天。这是很棒的图书馆。但是我处理了一个我一段时间无法解决的问题。因此,当 signalR 一次建立 8-10 个连接时,实时聊天的问题不再起作用。也许是我在本地机器上运行所有内容的b/c?

我想也许我在某个地方犯了错误。所以我找到了最简单的聊天。您可以在此处下载。 我在 10 个窗口中打开了它,它不再起作用了。是信号R的性能问题还是程序员的错误?如何使其工作得更快?

我也发现了JabbR聊天。它有现场演示,它适用于很多人。他们不会制造任何特别的东西,而且效果很好。

有人可以帮助解决这个问题吗?

非常感谢任何帮助,迪玛。

当 SignalR 一次建立 8-10 个连接时,实时聊天不起作用

您可能会遇到两个问题:

  1. Windows 7 上的 IIS/Cassini 的默认限制为 10 个并发连接。尝试在Windows Server上运行测试,看看它的行为是否相同。
  2. 尝试在单独的浏览器窗口和/或单独的浏览器和/或计算机(而不是选项卡中)打开连接。我注意到在 0.4 中使用选项卡时事情可能会搞砸。

找到了解决方法:

重写 connectionId,因此在每个选项卡中,您将具有相同的 sonnection id:

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

添加到 global.asax:

GlobalHost.DependencyResolver.Register(typeof(IConnectionIdGenerator), () => new MyConnectionFactory());

我设法尽可能以马赫标签打开。所有选项卡都会收到通知。

希望,这有帮助。