使用Python通过WebSockets访问API

10

我是一名业余编码者,正在进行一个周末项目。

我希望访问此处提供的公共API:https://api.coinsecure.in/ 它为我们提供了比特币交易数据-该API通过Websockets提供,而我对此不熟悉。

Websocket URI是wss://coinsecure.in/websocket 我想要测试的方法是:{"method": "recentbuytrades"}

我能够使用Python中列出的“websocket-client”访问WebScocket API,网址为:https://pypi.python.org/pypi/websocket-client/

但不幸的是,我无法弄清楚如何检索特定方法的数据- {"method": "recentbuytrades"}

如果您能提供有关提取此特定方法数据的任何指导,我将非常感激。

最好的祝福, Ryan

[编辑] 我当前使用的代码是:

from websocket import create_connection
ws = create_connection("wss://coinsecure.in/websocket")
result =  ws.recv()
print ("Received '%s'" % result)
ws.close()

你能否发布一下你目前用于连接 WebSocket 的代码? - Undo
我已经编辑了我的查询,并添加了我目前正在使用的代码。 - ryan c788
1
只需执行 ws.send({"method": "recentbuytrades"}) 并实现 on_message(...) 以接收此消息的响应。他们必须展示一些例子。当然,ws 是一个 Connection 实例,因此请查看您可以重写的方法。 - DevLounge
1
Tornado还拥有一个干净的WebSocket客户端实现,以及其他有用的辅助工具。因此,如果您想让生活变得轻松,请使用Tornado。我两者都用过,但我更喜欢在这些方面使用Tornado。 - DevLounge
哦,好的,当然。我以前从未使用过Tornado。我会试一下的。谢谢你的帮助 :) - ryan c788
1个回答

10

试试这个:

from websocket import create_connection
ws = create_connection("wss://coinsecure.in/websocket")
ws.send('{"method": "recentbuytrades"}')

while True:
  result =  ws.recv()
  print ("Received '%s'" % result)

ws.close()

请注意ws.send()方法,此方法告诉API你需要什么。接下来是while True的无限循环 - WebSockets是不定期连接;信息通常会多次发送。你将从服务器收到一系列信息(看起来像JSON),对其进行处理,然后等待下一批信息。

同时API似乎也会向你发送你不需要的数据。如果帧中不包含recentbuytrades键,您可能需要丢弃该帧。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接