WSS龙卷风连接问题



Tornado Server

ssl_options = {
        "certfile": "server.crt",
        "keyfile": "server.key"
}
application=Application()
server=tornado.httpserver.HTTPServer(application,xheaders=True,ssl_options=ssl_options)
server.listen(tornado.options.options.port)
tornado.ioloop.IOLoop.instance().start()

JS Websocket

webSocket = new WebSocket("wss://" + location.hostname + ":8888/socket");

连接没有打开,也没有调用open()方法,也没有错误。

当尝试使用不安全的socket连接时

webSocket = new WebSocket("ws://" + location.hostname + ":8888/socket");

得到以下错误:

Tornado:
    [W 140725 11:35:35 iostream:845] SSL Error on 11 ('192.168.0.72', 54554): [Errno 1] _ssl.c:504: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request

JS:
    WebSocket connection to 'ws://192.168.0.72:8888/socket' failed: Connection closed before receiving a handshake response 

然而,当我从龙卷风中删除ssl_options,并尝试从JS和不安全的连接,它工作得很好。

Tornado:
    server = tornado.httpserver.HTTPServer(application)
JS:
    webSocket = new WebSocket("ws://" + location.hostname + ":8888/socket");

我不知道问题是什么,也不知道如何处理。

浏览器可能试图向您显示"您是否接受此自签名证书"对话框,但由于websocket连接是不可见的,因此无法显示。要将wss:与自签名证书一起使用,您必须首先访问带有该证书的常规html页面,以便您可以接受它。

龙卷风错误消息表示http请求被发送到https端口。我正在从http url加载javascript,将其更改为https解决了这个问题。

相关内容

  • 没有找到相关文章

最新更新