我正在try 连接到wss://api.poloniex.com并订阅ticker.我在python中找不到任何有效的示例.我try 过使用autobahn/twisted和websocket客户端0.32.0.
其目的是获取实时股票行情数据,并将其存储在mysql数据库中.
到目前为止,我已经try 使用图书馆文档中提供的示例.它们适用于本地主机或测试服务器,但如果我改为wss://api.poloniex.com我犯了很多错误.
下面是我使用websocket客户端0.32.0的try :
from websocket import create_connection
ws = create_connection("wss://api.poloniex.com")
ws.send("ticker")
result = ws.recv()
print "Received '%s'" % result
ws.close()
这是使用autobahn/twisted:
from autobahn.twisted.websocket import WebSocketClientProtocol
from autobahn.twisted.websocket import WebSocketClientFactory
class MyClientProtocol(WebSocketClientProtocol):
def onConnect(self, response):
print("Server connected: {0}".format(response.peer))
def onOpen(self):
print("WebSocket connection open.")
def hello():
self.sendMessage(u"ticker".encode('utf8'))
self.sendMessage(b"\x00\x01\x03\x04", isBinary=True)
self.factory.reactor.callLater(1, hello)
# start sending messages every second ..
hello()
def onMessage(self, payload, isBinary):
if isBinary:
print("Binary message received: {0} bytes".format(len(payload)))
else:
print("Text message received: {0}".format(payload.decode('utf8')))
def onClose(self, wasClean, code, reason):
print("WebSocket connection closed: {0}".format(reason))
if __name__ == '__main__':
import sys
from twisted.python import log
from twisted.internet import reactor
log.startLogging(sys.stdout)
factory = WebSocketClientFactory("wss://api.poloniex.com", debug=False)
factory.protocol = MyClientProtocol
reactor.connectTCP("wss://api.poloniex.com", 9000, factory)
reactor.run()
如果能提供一个完整但简单的示例,演示如何使用任何python库连接和订阅websocket推送api,将不胜感激.