1

我有一个连接到 SignalR 集线器的 JavaScript 客户端。第一次连接正常,一切正常(消息发送成功):

js/jquery.signalR-1.1.3.min.js (10) :[14:31:06 GMT+0900 (KST)] SignalR: Auto detected cross domain url.
js/jquery.signalR-1.1.3.min.js (10) :[14:31:06 GMT+0900 (KST)] SignalR: Negotiating with '........'.
js/jquery.signalR-1.1.3.min.js (10) :[14:31:06 GMT+0900 (KST)] SignalR: SignalR: Initializing long polling connection with server.
js/jquery.signalR-1.1.3.min.js (10) :[14:31:15 GMT+0900 (KST)] SignalR: Attempting to connect to '.......' using longPolling.
js/jquery.signalR-1.1.3.min.js (10) :[14:31:15 GMT+0900 (KST)] SignalR: Longpolling connected

1分钟后,它尝试重新连接,但失败:

js/jquery.signalR-1.1.3.min.js (10) :[14:32:15 GMT+0900 (KST)] SignalR: An error occurred using longPolling. Status = error. 
js/jquery.signalR-1.1.3.min.js (10) :[14:32:15 GMT+0900 (KST)] SignalR: SignalR: Initializing long polling connection with server.
js/jquery.signalR-1.1.3.min.js (10) :[14:32:15 GMT+0900 (KST)] SignalR: Attempting to connect to '.......' using longPolling.
js/jquery.signalR-1.1.3.min.js (10) :[14:32:45 GMT+0900 (KST)] SignalR: Couldn't reconnect within the configured timeout (30000ms), disconnecting.
js/jquery.signalR-1.1.3.min.js (10) :[14:32:45 GMT+0900 (KST)] SignalR: Aborted xhr requst.
js/jquery.signalR-1.1.3.min.js (10) :[14:32:45 GMT+0900 (KST)] SignalR: Clearing hub invocation callbacks with error: Connection was disconnected before invocation result was received.

在服务器端,我只启用跨域连接,其他一切都是默认的。

有什么问题?

4

1 回答 1

2

如果可以,请避免使用不同的域/子域来启动,这会导致回退到长轮询,并且 websockets 可能会建立更可靠的解决方案。您需要在 Windows 2012 上运行服务器端才能充分利用它。他们确实在 2.0 中修复了很多问题,并且使 api 变得更加简单,并且他们提供了开箱即用的服务器重新连接的示例代码。您的问题可能源于服务器每个请求的超时时间为 1 分钟,您可以在 IIS 中增加该超时时间。对我来说,在我的主应用程序下添加一个虚拟应用程序解决了很多问题。如果在此之后您仍然有问题查看服务器实际返回的内容,可能有助于使用 Fiddler 记录与服务器的通信。

于 2014-01-16T00:03:45.140 回答