无法启动连接:错误:WebSocket 连接失败
Posted
技术标签:
【中文标题】无法启动连接:错误:WebSocket 连接失败【英文标题】:Failed to start the connection: Error: WebSocket failed to connect 【发布时间】:2022-01-09 22:29:55 【问题描述】:错误:无法启动连接:错误:WebSocket 无法启动 连接。在服务器上找不到连接,要么 端点可能不是 SignalR 端点,连接 ID 不是 存在于服务器上,或者存在阻止 WebSockets 的代理。如果你 让多台服务器检查是否启用了粘性会话。
WebSocketTransport.js:49 WebSocket 连接到 'ws://xxxxxx/production/web-services/hubs/spreadhub' 失败:
Angular.ts
ngOnInit(): void
// For signalR Hub connection
this.connection = new HubConnectionBuilder()
.withUrl('http://xxx.xxx.com/production/web-services/hubs/spreadhub', // localhost from **AspNetCore3.1 service**
skipNegotiation: true,
transport: signalR.HttpTransportType.WebSockets
)
.build();
this.connection.on('dataReceived', (data: string) =>
var model = JSON.parse(data);
);
this.connection.start().then(() => // to start the server
console.log('server connected!!!');
).catch(err => console.log(err));
【问题讨论】:
你在哪里运行的?在linux还是windows上?我也面临同样的问题。我在 httpd 和 kestrel 上。我认为这与 httpd 中不允许或转发到 kestrel 的 Web 套接字连接有关。 windows平台 对我来说,问题在于我们的流量位于导致问题的代理后面。这个答案帮助了我:***.com/a/68732723/8644294 【参考方案1】:您不需要指定完整的 url,只需要指定您要连接到的集线器...假设您的集线器名称是 spreadhub,您只需要:
this.connection = new HubConnectionBuilder()
.withUrl('https://localhost:5001/spreadhub', // localhost from **AspNetCore3.1 service**
skipNegotiation: true,
transport: signalR.HttpTransportType.WebSockets
)
.build();
在服务器上,如果部署到 azure,别忘了打开 websockets 像:
【讨论】:
本地服务在我们这边运行良好。在线服务出现问题以上是关于无法启动连接:错误:WebSocket 连接失败的主要内容,如果未能解决你的问题,请参考以下文章
WebSocket 连接失败。 WebSocket握手期间出错-socketjs
WebSocket DeploymentException 连接失败
由于 BoringSSL 证书验证失败,iOS 上的安全 websocket 连接失败
ws 如何捕获:到 'ws:// 的 WebSocket 连接失败:连接建立错误:net::ERR_CONNECTION_REFUSED