【发布时间】:2018-02-12 05:31:34
【问题描述】:
我正在制作一个需要从 WebSocket 安全服务器接收实时消息的程序。
我尝试使用 JavaScript 完成这项任务,效果非常好!
但是 JavaScript 并不能满足我项目的需求。所以我试图在 Python 中做同样的事情。但没有成功。
我正在努力解决的错误是:
[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:777)
我认为 JavaScript 没有这个问题,因为它使用浏览器来验证连接。
我正在使用什么:
- Python 3.6.4
- Anaconda3
- Windows 10
我真的不知道该怎么办。我已经搜索了很多。
我可以通过更改代码来解决这个问题吗?
我应该使用另一个库来建立连接吗?
是 Python 还是 Anaconda 的问题?
是我想不通的新手错误吗?
这是我的 Python 代码:
import websocket
import websocket
import threading
import time
def on_message(ws, message):
print(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
def run(*args):
for i in range(3):
time.sleep(1)
data = ws.recv()
print(data)
time.sleep(1)
ws.close()
print("thread terminating...")
thread.start_new_thread(run, ())
websocket.enableTrace(True)
ws = websocket.WebSocketApp("wss://stream.binance.com:9443/ws/bnbbtc@ticker",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
如果有人感兴趣,这是我的 JavaScript 代码:
var socket = new WebSocket('wss://hostname:port/dir/dir@ticker');
socket.onopen = function(event)
{
console.log('connected');
}
socket.onmessage = function(e){
var server_message = e.data;
console.log(server_message);
}
【问题讨论】:
标签: python python-3.x ssl websocket ssl-certificate