我被火狐困住了。我不能让Websocket在上面工作。我使用“旋风”Websocket并通过下面的代码对其进行初始化:
app = Application([(r'/mypath/ws', WSHandler)])
http_server = HTTPServer(app, ssl_options={
"certfile": "~/certs/websocket.crt",
"keyfile": "~/certs/websocket.key"
})
http_server.listen("443")我在Javascript端初始化它,如下所示:
var WS = new WebSocket("wss://websocket.localhost/mypath/ws");这段代码在Chrome上运行良好,同时我自己创建了证书,并在HTTPS下运行该页面。但是Firefox一直说:
Firefox can't establish a connection to the server at wss://websocket.localhost/mypath/ws.我在谷歌上找到了太多的想法,但这些想法对我都没有用。
任何帮助都将不胜感激。
发布于 2014-05-21 14:02:56
我通过ProxyPass解决了我的问题。我用旋风创建了一个非安全的Websocket服务器,并在一个特定的端口上运行它,比如3232:
app = Application([(r'/ws/', WSHandler)])
ws_server = HTTPServer(app)
ws_server.listen("3232")然后,我在Apache中编写了一个proxypass,并使用mod_proxy_wstunnel:
ProxyPass /ws/ ws://127.0.0.1:3232/ws/
ProxyPassReverse /ws/ ws://127.0.0.1:3232/ws/我在前端创建Websocket客户端,如下所示:
var WS = new WebSocket("wss://websocket.localhost:81/ws/")在本例中,我可以使用https在安全连接上创建一个连接,我的端口是81,我的代理程序将任何Websocket请求重定向到本地侦听端口3232。这不是一个确切的解决方案,主要是一个解决办法。但对我来说很好。
发布于 2019-06-01 12:25:38
如果它是一个自签名的证书,浏览器将不会显示对话框接受证书,如果它只在一个websocket中使用。
您必须首先访问请求的url以查看和接受证书警告,然后才能创建安全的websocket。
例如,如果您的websocket url是:
wss://localhost:44300/OpenWebSocket
然后访问:
https://localhost:44300/OpenWebSocket
并接受证书警告。
发布于 2014-05-21 13:55:41
如果它是一个自签名的证书,浏览器将不会显示对话框接受证书,如果它只在一个websocket中使用。您必须首先访问同一服务器上的普通页以查看和接受证书警告,然后才能创建安全的websocket。
https://stackoverflow.com/questions/23775215
复制相似问题