最近在学习量化交易,之前一直是用rest api直接抓取交易所的行情数据,但是最近有需要用到websocket去做这个事情,但之前没用过websocket,就尝试着学了一下,但是发生了一个意向不到的问题,在win10环境下我用python websocket-client库去获取okex交易所数据的时候,一直无法成功,都是出现‘’[WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。‘’这个问题。
尝试爬取一些国内的测试用websocket服务器后发现是能成功连接的,说明的确就是网络问题。可问题是我明明已经开了全局代理,但还是照样不行。但是同样的代理环境下,我用rest api去爬取okex交易所的数据是可以获取成功的。然后,我就用了香港阿里云的服务器写了同样的代码用websocket去爬取Okex交易所的数据,发现是没问题的!获取成功!那到底为啥我在windows环境下就无法连接成功呢??一头雾水了已经.....
import websocket
def on_message(ws, message):
print(ws)
print(message)
def on_error(ws, error):
print(ws)
print(error)
def on_close(ws):
print(ws)
print("### closed ###")
websocket.enableTrace(True)
ws = websocket.WebSocketApp("wss://real.okex.com:8443/ws/v3",
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.run_forever()
<websocket._app.WebSocketApp object at 0x000001E17A687978>
[WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
<websocket._app.WebSocketApp object at 0x000001E17A687978>
### closed ###