首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wss tornado连接问题

wss tornado连接问题
EN

Stack Overflow用户
提问于 2014-07-25 14:43:29
回答 2查看 2.9K关注 0票数 1

Tornado服务器

代码语言:javascript
复制
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

代码语言:javascript
复制
webSocket = new WebSocket("wss://" + location.hostname + ":8888/socket");

连接不会打开,open()方法也不会调用,也不会出现错误。

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

代码语言:javascript
复制
webSocket = new WebSocket("ws://" + location.hostname + ":8888/socket");

我得到以下错误:

代码语言:javascript
复制
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_options,并尝试从JS进行不安全连接时,它工作得很好。

代码语言:javascript
复制
Tornado:

    server = tornado.httpserver.HTTPServer(application)

JS:

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

我无法弄清楚问题可能是什么,以及如何继续。

EN

回答 2

Stack Overflow用户

发布于 2014-07-25 22:22:20

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

票数 1
EN

Stack Overflow用户

发布于 2014-07-26 11:22:36

tornado错误消息表示正在向https端口发送http请求。我从http url加载javascript,把它改成https解决了这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24949576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档