Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Websocket wss tornado连接问题_Websocket_Tornado_Wss - Fatal编程技术网

Websocket wss tornado连接问题

Websocket wss tornado连接问题,websocket,tornado,wss,Websocket,Tornado,Wss,龙卷风服务器 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) t

龙卷风服务器

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()
JSWebSocket

webSocket = new WebSocket("wss://" + location.hostname + ":8888/socket");
连接没有打开,也没有调用open()方法,也没有错误

尝试使用来自JS的不安全套接字连接时

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 
然而,当我从tornado中删除ssl_选项,并尝试从JS中删除不安全的连接时,它工作正常

Tornado:

    server = tornado.httpserver.HTTPServer(application)

JS:

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

我无法确定问题可能是什么以及如何处理。

浏览器可能正在尝试向您显示“是否接受此自签名证书”对话框,但无法显示,因为websocket连接不可见。要使用自签名证书使用wss:,您必须首先使用该证书访问常规html页面,才能接受它。

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

我已经接受了证书,问题是我试图通过http而不是https访问网页。谢谢你的帮助。