【发布时间】:2017-02-14 07:23:38
【问题描述】:
我正在使用jquery.signalR-2.2.0.js 进行信号连接。
我有以下代码
var connection = $.hubConnection();
var proxy = connection.createHubProxy(hubName);
connection.qs = { 'groupId': groupId };
proxy.on('connected', function () { });
connection.logging = true;
connection.stop();
connection.transportConnectTimeout = 5000;
connection.start({ transport: ['webSockets', 'longPolling'] }).done(function () {
console.log("Connected, transport = " + connection.transport.name);
})
.fail(function () { console.log('Could not Connect!'); });
现在当我使用域名通过 chrome 访问我的网站时出现以下错误:
的WebSocket为“WS连接:// XYZ / signalr /连接运输=的WebSockets&clientProtocol = 1.5&的groupId = 0011600003&connectionToken = nzZP7FOeqXGWVO9gqRZJI3Kl6NBBV%2FSXdgFWR7hvnsNooMr6Qh6vc7YOMzl%2Bb8ExCssRESg4et5mjJ1pQ%2BB%2BMFPy4nu0aMw9kI7pBzOSTLjzQXLlEVe%2FIqdHj%2Bd7sYpd8nGwA7tMaPBHYxpTt7%2FvbA%3D%3D&connectionData =%5B%7B %22name%22%3A%22spotterenhancementhub%22%7D%5D&tid=3' 失败:HTTP 身份验证失败;没有可用的有效凭据start @ jquery.signalR-2.2.0.min.js:8start @ jquery.signalR-2.2.0.min.js:8d @ jquery.signalR-2.2.0.min.js:8success @ jquery.signalR -2.2.0.min.js:8i @jquery-2.2.3.min.js:2fireWith @jquery-2.2.3.min.js:2z @jquery-2.2.3.min.js:4(匿名函数) @ jquery-2.2.3.min.js:4 jquery.signalR-2.2.0.min.js:8
[14:02:22 GMT-0400(东部夏令时间)] SignalR:Websocket 已关闭。 jquery.signalR-2.2.0.min.js:8
[14:02:22 GMT-0400(东部夏令时间)] SignalR:关闭 Websocket。 jquery.signalR-2.2.0.min.js:8
[14:02:22 GMT-0400(东部夏令时间)] SignalR:webSockets 传输连接失败。试图后退。 jquery.signalR-2.2.0.min.js:8
[14:02:22 GMT-0400(东部夏令时间)] SignalR:longPolling 传输开始。
此外,这可以通过 Firefox 与服务器和域名完美配合。唯一的问题在于 Chrome 和域名。
注意:我正在使用 AD - windows 身份验证
操作系统:Windows 10
【问题讨论】:
-
如果您使用的是 IIS - 您是否启用了 websockets?我相信它们默认是禁用的。
-
已经启用。实际上,当我使用服务器名称访问网站时,它运行良好,但是当我使用服务器的代理名称时,它就失败了。
-
代理是否支持 websockets,如果支持,是否配置正确?
-
这似乎是 chrome 问题。有趣的是,如果您使用计算机名称,则它适用于 windows7 + chrome,但不适用于 windows 10 + chrome
标签: javascript jquery google-chrome websocket signalr