在Chrome中,我遇到了WebSocket连接问题:
wss://失败:WebSocket开放握手被取消
在其他浏览器中,一切运行良好。
我该怎么办?
答案 0 :(得分:0)
我猜你正在尝试连接到localhost或其他非公共IP地址(192.168等)。由于安全性担心可能会从互联网上下载的网页拨打电话,Chrome会阻止这些请求。见https://news.ycombinator.com/item?id=9210484
其实我的初步诊断是错误的。我对通配符证书也有同样的问题。从letsencrypt向域发出特定证书解决了这个问题。
答案 1 :(得分:0)
不确定那是否是op的情况,但是如果您来这里是非常具体的组合:
verifyclientcertifGiven
选项,或在其他一些反向代理中默认启用了)WebSocket opening handshake was canceled
的结果您可能会遇到Chromium(WebKit?)中一个长期存在的错误: https://bugs.chromium.org/p/chromium/issues/detail?id=329884
这个github问题和讨论(与报告的实际项目并不真正相关)https://github.com/beyondcode/laravel-websockets/issues/187也很好地解决了这个问题。
一种可能的解决方案是禁用可选的客户端证书验证,例如只是不使用它,或者将单个主机(要么需要不带客户端证书的主机)拆分为两个主机,一个不进行客户端证书验证,而另一个则强制执行。