Asp.net mvc 4 信号机连接错误

Asp.net mvc 4 信号机连接错误,asp.net-mvc-4,signalr,Asp.net Mvc 4,Signalr,我有一个使用SignalR和MVC运行的简单聊天客户端项目,它几乎与相同(我只是在试验-客户端代码是相同的)。我将以下内容连接起来,以便在事情发生时进行观察: $.connection.hub.stateChanged(function(state){console.log(state)}); 连接工作正常,但我注意到,如果我关闭IIS Express并在Chrome中观看控制台,我会看到: //As you would expect the state goes from connected

我有一个使用SignalR和MVC运行的简单聊天客户端项目,它几乎与相同(我只是在试验-客户端代码是相同的)。我将以下内容连接起来,以便在事情发生时进行观察:

$.connection.hub.stateChanged(function(state){console.log(state)});
连接工作正常,但我注意到,如果我关闭IIS Express并在Chrome中观看控制台,我会看到:

//As you would expect the state goes from connected to connecting
Object {oldState: 1, newState: 2}

//Then it times out after about 30 secs and throws this awesomeness at the console
WebSocket connection to 'ws://localhost:61623/signalr?transport=webSockets&connectionToken=VDF640emz7PFMToC6vxle_5-7QS5dZMszV4SPbQO7EFEmSSsITnwKsZreqfl4MGq8TXitG2xB5F-2ZdHp-2t3shPzN2hemTY1ZmEWlB8NOn5orUVexaSoARk9XjEO5B00&connectionData=%5B%7B%22name%22%3A%22chathub%22%7D%5D&messageId=B%2C7%7CL%2C0%7CM%2C0%7CN%2C0&tid=0' failed: WebSocket is closed before the connection is established. jquery.signalR-1.0.1.js:1117

//Reconnecting to Disconnecting - so why the error above?
Object {oldState: 2, newState: 4} 

//Then radio silence if I start IIS again...
2个问题:

当尝试的重新连接失败时,如何避免错误

为什么信号器不继续尝试连接到IIS?我觉得这就是技术的重点


编辑:FireFox中也会发生同样的情况

最终,连接将终止并停止重试。您可以让它从信号器文档中连续重新连接此方法

如何持续重新连接

在某些应用程序中,您可能希望自动重新建立 断开连接后,尝试重新连接失败 超时。要做到这一点,您可以从关闭的 事件处理程序(JavaScript客户端上断开连接的事件处理程序)。你 可能需要在调用Start之前等待一段时间,以便 避免在服务器或物理服务器发生故障时频繁执行此操作 连接不可用。下面的代码示例用于 使用生成的代理的JavaScript客户端


不确定这是否有助于解决您的问题@TimBJames-谢谢Tim,这真的只是为了它超时,我不介意它超时如果服务器爆炸并停止响应,我只想优雅地处理客户端错误:-)插入这个问题的链接,因为里面可能有人可以帮助。你有过这个问题的答案吗?没有,我想从内存中我只是放了一个try/catch系统,如果它死了,就重新启动连接。事实上,下面的答案正是我所做的。
$.connection.hub.disconnected(function() {
   setTimeout(function() {
       $.connection.hub.start();
   }, 5000); // Restart connection after 5 seconds.
});