【问题标题】:Accessing API via WebSockets using Python使用 Python 通过 WebSockets 访问 API
【发布时间】:2016-01-30 18:33:18
【问题描述】:

业余爱好者在这里从事周末项目。

我希望访问此处提供的公开 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"}

非常感谢您在提取此特定方法的数据方面提供的任何指导。

最好, 瑞恩

[编辑] 我正在使用的当前代码是这样的:

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

【问题讨论】:

  • 你能贴出你目前用来连接websocket的代码吗?
  • 我已经编辑了我的查询并添加了我当前使用的代码
  • 只需执行 ws.send({"method": "recentbuytrades"}) 并实现 on_message(...) 即可接收此消息的响应。他们必须展示一些例子。当然,ws 是一个 Connection 实例,所以看看你可以覆盖的方法。
  • tornado 还有一个干净的 websocket 客户端实现,以及其他有用的助手。因此,如果您想让生活变得轻松,请改用龙卷风。我都用过,但我更喜欢龙卷风来做这些事情。
  • 哦,确定。以前从未使用过龙卷风。会试一试。感谢您的帮助:)

标签: python api websocket


【解决方案1】:

试试这个:

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 键,您可能需要将其丢弃。

【讨论】:

    猜你喜欢
    • 2014-11-24
    • 2017-07-29
    • 2018-12-08
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-11
    • 2013-01-03
    • 2020-02-24
    相关资源
    最近更新 更多