SignalR无法在JavaScript客户端中重新连接到服务器

时间:2013-10-12 06:17:25

标签: javascript signalr

我有一个连接到SignalR hub的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.

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

有什么不对?

1 个答案:

答案 0 :(得分:2)

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