【发布时间】:2012-12-18 14:04:33
【问题描述】:
我有一个使用带有集线器和持久连接的 SignalR(1.0.0 alpha 2) 的 Web 应用程序 (.NET 4.0 ASP.NET MVC3)。
通过集线器,我使用组向某些客户端发送推送通知。
问题是,当远程访问服务器时,它默认为长池,并且只有持久连接才能工作。使用集线器,事件发生在服务器上,但我的回调没有在客户端调用。虽然它使用 SSE,但它在本地工作。
我发现,将客户端分组和长池传输相结合会导致问题。只要我得到VS2012,我就会尝试调试SignalR。
为了证明这一点,我刚刚修改了这个chat example,因此使用了硬编码组并强制使用长池 - 它在我的机器 (IISExpress) 和服务器 (IIS 7.5) 上都不起作用。只要您使用不同的交通工具或这样做,聊天就可以正常工作
context.Clients.All.addMessage(message);
而不是
context.Clients.Group(groupName).addMessage(message);
Here 是一个示例项目。
这是 SignalR 中的错误还是我遗漏了什么?
知道为什么在我的部署服务器上 SignalR 会回退到端口 80 上的长轮询,但如果我的站点配置在不同的端口上则使用 SSE?
【问题讨论】:
标签: asp.net-mvc-3 .net-4.0 signalr signalr-hub