【发布时间】:2023-03-27 04:15:01
【问题描述】:
我一直在尝试连接到Cryptocompare's WebSocket:wss://streamer.cryptocompare.com/socket.io/?transport=websocket
我需要连接到这个 WebSocket 来接收实时价格。我尝试了以下方法
1。使用 websocket-client
import websocket as ws
socket = ws.create_connection('wss://streamer.cryptocompare.com/socket.io/?transport=websocket', timeout = 10)
socket.connected
这会返回
True
这种方法将我连接到 cryptocompare 的 websocket,但不允许我发送消息。根据 Cryptocompare 的 API 指南,我使用了:
socket.send('SubAdd',{'subs': ['0~Poloniex~BTC~USD']})
上面的代码返回这个错误:
ValueError: Invalid OPCODE
与 API 中给出的相同的 Javascript 代码是:
socket.emit('SubAdd', { subs: ['0~Poloniex~BTC~USD'] } );
我不明白我做错了什么
2。使用 socketIO-client
from requests.exceptions import ConnectionError
from socketIO_client import SocketIO
try:
socket = SocketIO('wss://streamer.cryptocompare.com/socket.io/?transport=websocket', wait_for_connection=False)
socket.wait()
except ConnectionError:
print('The server is down. Try again later.')
这给出了以下输出:
ConnectionError: HTTPConnectionPool(host='wss', port=80): Max retries exceeded with url: //streamer.cryptocompare.com/socket.io/transport=websocket/socket.io/?EIO=3&transport=polling&t=1512683258219-0 (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7fbd0c273400>: Failed to establish a new connection: [Errno -2] Name or service not known',))
感谢有关此问题的任何帮助
【问题讨论】:
标签: python-3.x socket.io