我没有在
hubConnection.start()
中指定任何传输,但我仍然遇到传输失败。
我使用的是 IE 10 和 IIS 8.0。谁能告诉我怎么了?
连接SignalR服务器的代码:
$(document).ready(function () {
var hubConnection = $.hubConnection("http://myserver.com:8031");
var notificationHub = hubConnection.createHubProxy("Notification");
hubConnection.logging = true;
notificationHub.on("calculationResultReceived", function (result) {
addLog("Time elapsed: " + result.timeElapsed + ", finalResult: " + result.finalResult+ ", ID: " + result.jobId);
}
});
hubConnection.start().done(function () {
notificationHub.invoke("Echo")
.done(function (msg) { addLog("Notification hub connection established successfully" + "\n" + msg); })
.fail(function (message) { addLog("Failed to register push channel"); });
}).fail(function (message) {
addLog("The connection cannot be established: " + message)
});
});
IE10的控制台日志:
[23:10:06 UTC+0800] SignalR:客户端订阅了集线器“通知”。 [23:10:06 UTC+0800] SignalR:正在与 'http://myserver.com:8031/signalr/negotiate?connectionData=%5B%7B%22name%22%3A%22notification%22%7D%5D&clientProtocol=1.3'。 [23:10:07 UTC+0800] SignalR:此浏览器不支持 SSE。
[23:10:07 UTC+0800] SignalR:绑定到 iframe 的加载事件。
[23:10:12 UTC+0800] SignalR:尝试时foreverFrame超时 连接。 [23:10:12 UTC+0800] SignalR:永远停止帧。
[23:10:12 UTC+0800] SignalR:打开长轮询请求 'http://myserver.com:8031/signalr/connect?transport=longPolling&connectionToken=c39XZZSbiQZDnXbf6vOm8zt8wTQrStyPg8qchxWFevyp9BN2yxslU6YAahRdrsy7W0LOc%2BW5FMfRhQe10o%2B2ihlprs9803heDkD 2S1Qo4j8oI1kmUA5fPXoBlcP3Ygrk&connectionData=%5B%7B%22name%22%3A%22notification%22%7D%5D&tid=6'。 [23:10:17 UTC+0800] SignalR:尝试时 longPolling 超时 连接。 [23:10:17 UTC+0800] SignalR:已中止 xhr 请求。
[23:10:17 UTC+0800] SignalR:正在停止连接。 [23:10:17 UTC+0800] SignalR:触发 ajax 中止异步 = true。
我检查了我的 IIS8 安装,并启用了 WebSocket 功能。但仍然是同样的错误,尽管错误消息发生了一些变化。
尝试在 Visual Studio 中禁用浏览器链接功能。要禁用浏览器链接,请单击浏览器链接下拉列表并取消选中启用浏览器链接(在 Visual Studio 2013 中使用浏览器链接)。
(来源:github.com/SignalR,作者:netsrotr)