- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们部署到本地开发服务器,一些用户(不是全部)遇到信号器问题,其中 serverSentEvents 无法连接并回退到长轮询......通常这会很好,但需要 5 秒才能下降回来,用户体验很糟糕。
请求在 chrome 的开发人员工具网络选项卡中获得“已取消”状态,我们最终使用 signalr 的 longPolling 进行连接。这是来自 signalr 的日志记录:
[16:09:28 GMT-0500 (Eastern Standard Time)] SignalR: Client subscribed to hub 'chat'. jquery.signalR-2.0.0.js:75
[16:09:28 GMT-0500 (Eastern Standard Time)] SignalR: Negotiating with '/signalr/negotiate?connectionData=%5B%7B%22name%22%3A%22chat%22%7D%5D&clientProtocol=1.3'. jquery.signalR-2.0.0.js:75
[16:09:28 GMT-0500 (Eastern Standard Time)] SignalR: Attempting to connect to SSE endpoint 'http://mysubdomain.mydomain.com/signalr/connect?transport=serverSentEvents&con…bYUr2xEEBuw%3D%3D&connectionData=%5B%7B%22name%22%3A%22chat%22%7D%5D&tid=6'. jquery.signalR-2.0.0.js:75
[16:09:33 GMT-0500 (Eastern Standard Time)] SignalR: serverSentEvents timed out when trying to connect. jquery.signalR-2.0.0.js:75
[16:09:33 GMT-0500 (Eastern Standard Time)] SignalR: EventSource calling close(). jquery.signalR-2.0.0.js:75
[16:09:33 GMT-0500 (Eastern Standard Time)] SignalR: This browser supports SSE, skipping Forever Frame. jquery.signalR-2.0.0.js:75
[16:09:33 GMT-0500 (Eastern Standard Time)] SignalR: Opening long polling request to 'http://mysubdomain.mydomain.com/signalr/connect?transport=longPolling&connecti…bYUr2xEEBuw%3D%3D&connectionData=%5B%7B%22name%22%3A%22chat%22%7D%5D&tid=2'. jquery.signalR-2.0.0.js:75
[16:09:33 GMT-0500 (Eastern Standard Time)] SignalR: Long poll complete. jquery.signalR-2.0.0.js:75
[16:09:33 GMT-0500 (Eastern Standard Time)] SignalR: LongPolling connected.
一旦客户端最终通过长轮询连接,网站就可以正常工作,但我仍然需要弄清楚为什么 serverSentEvents 不工作。
我可以禁用 serverSentEvents 来解决这个问题,但它适用于某些人而不适用于其他人,所以我想知道是否有某种方法可以找出为什么它对某些人而不是其他人失败。
关于如何诊断这个问题有什么建议吗?
最佳答案
从服务器发送的事件传输回退需要 5 秒,因为这是 SignalR 的默认 TransportConnectTimeout。可以在应用程序启动时通过 GlobalHost.Configuration.TransportConnectTimeout
缩短此 TimeSpan。
SSE 失败的原因有很多。例如,您的 SignalR 服务器和客户端之间可能存在路由器或防火墙,它们正在合并或关闭服务器发送事件传输所依赖的分块 HTTP 响应。当我只知道连接超时时,很难确定 SSE 问题的确切原因是什么。
关于某些用户的 signalr serverSentEvents 失败,但其他用户则不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20892449/
我们部署到本地开发服务器,一些用户(不是全部)遇到信号器问题,其中 serverSentEvents 无法连接并回退到长轮询......通常这会很好,但需要 5 秒才能下降回来,用户体验很糟糕。 请求
SignalR 在尝试连接某些用户时给我 404。除了 access_token 之外,URL 是相同的。 每个用户都稳定可复现(我的意思是有些用户稳定 OK,有些用户稳定 404)。 access_
在我的机器上,我发现 Chrome 中没有调用 SignalR 客户端函数。 我的 SignalR 测试应用程序可以在我的 iPhone 上与 IE9、Firefox 甚至 Safari 一起正常工作
我已经部署了我的带有 SignalR 的 ASP.NET MVC 4 应用程序,它在除一个客户端之外的所有客户端上运行良好。使用 Chrome 开发工具调试页面时,我看到 SignalR 传输方法是
我正在使用 SignalR 2.0.0-beta2 它在生产环境中表现异常 ASP.NET MVC 5 [ .NET Framework 4.5 ] 应用程序安装在 Windows Server 20
我是一名优秀的程序员,十分优秀!