我正试图从Python客户机使用socketIO连接到Cryptocompare的websocket流。事实证明这是具有挑战性的。下面是一些Python代码示例:
from socketIO_client import SocketIO
print "connecting to server"
socketIO = SocketIO('https://streamer.cryptocompare.com/',443, transports=['websocket'])
print "Connected"
然而,不管我做什么,我都无法连接。事实上,这就是这种联系的结果
^{pr2}$将上面的代码包装在try-catch中并打印异常不会产生额外的信息。任何帮助都将不胜感激。在
我从几个角度研究了这个问题,并得出结论:socketio client for python不能与此API一起工作。如果您只想从CryptoCompare流式api将数据流式传输到python,那么我有一个有效的解决方法,它使用websockets向一个简单的nodejs应用程序提交请求,然后使用其socketio客户机将所需的数据流式返回。我对python还比较陌生,只是看了一下nodejs的这个解决方案,所以别着急。在
加密目前很热门,所以我相信这对某些人是有用的
Python部分:
Nodejs部分:
socketIO_客户端库似乎不支持cryptocompare使用的XHR轮询协议。我通过重写
socketIO_client.transports.XHR_PollingTransport
类中的方法recv_packet
来实现它。在解决方案主要基于以下github注释:https://github.com/invisibleroads/socketIO-client/issues/129#issuecomment-330058318
您需要在设置套接字后立即调用emit来设置要接收的订阅。在
相关问题 更多 >
编程相关推荐