3

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

我想也许我在某个地方犯了错误。所以我找到了最简单的聊天。你可以在这里下载。我在10个窗口中打开它,它不再工作了。是 signalR 的性能问题还是程序员的错误?我怎样才能让它更快地工作?

我还找到了 JabbR chat。它有现场演示 ,适用于很多人。他们没有做任何特别的事情,而且效果很好。

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

非常感谢您的帮助,迪玛。

4

2 回答 2

5

您可能遇到了两个问题:

  1. Windows 7 上的 IIS/Cassini默认限制为 10 个并发连接。尝试在 Windows Server 上运行测试,看看它的行为是否相同。
  2. 尝试在单独的浏览器窗口和/或单独的浏览器和/或机器中打开连接,而不是 tabs。我注意到在 0.4 中使用选项卡时可能会出现问题。
于 2012-05-03T19:30:05.877 回答
0

找到了解决方法:

重写connectionId,所以在每个选项卡中你都会有相同的连接ID:

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

添加到 global.asax:

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

我设法打开了马赫标签,尽我所能。所有标签都会收到通知。

希望,这有帮助。

于 2012-10-22T12:08:20.030 回答