【问题标题】:Poloniex & websocketsPoloniex 和网络套接字
【发布时间】:2018-01-23 09:32:08
【问题描述】:

===简单&简短===

这些天(2018 年 1 月)是否有人有通过 WAMP 与 Poloniex 对话的有效应用程序?

===更具体===

我使用了几个信息源来使用组合:autobahn-cppC++Windows 10 操作系统。 我能够连接到 wss://api.poloniex.com,realm1。另外,我能够订阅并获得订阅 ID。但即使一切就绪,我也没有收到任何事件。

===研究===

在网上研究的过程中,我看到了很多有争议的信息:

1. 声称应该使用 wss://api2.poloniex.com,频道名称实际上是数字 - How to connect to poloniex.com websocket api using a python library

2. 这个答案给了我基本代码,但我得到的不仅仅是连接,也遵循这个答案 - wss://api.poloniex.com 是正确的地址 - Connecting to Poloniex Push-API

3.我看到帖子(对不起,链接丢失),有cmets在poloniex上的websockets实现基本上被破坏了。它们是 6 个月前发布的。

===规格===

1.Windows 10

2.Autobahn-Cpp

3. wss://api.poloniex.com:443 ;领域1

4. 不同的订阅方式:ticker、BTC_ETH、148、1002等。

5.我从here得到的源代码

===也会有帮助===

  1. 有什么方法可以获取所有有效订阅,或者可能是订阅数超过 0 的订阅?我的意思是,WAMP 有办法做到这一点吗?

  2. Autobahn-Cpp 和 poloniex 组合是否存在任何已知问题?

  3. 有没有更简单的方法在其他地方测试 WAMP 以确保高速公路没有问题?像任何其他接受 WAMP websocket 通信的有据可查且受支持的在线项目一样?

【问题讨论】:

  • fwiw,直到大约一周前,我才从 wss://api2.poloniex.com:443 收到正确的数据,然后出了点问题。目前没有解决方案
  • 同样的问题。似乎 Poloniex 在 WSS 和 HTTPS 方面的 API 也存在一些问题。当我发出 GET 请求时,它们会返回 404 错误。
  • @onlyvix.blogspot.com 感谢您的回复。如果您在解决方案再次生效后立即更新您的答案,我将不胜感激。这将使我有理由至少对在 autobahn-cpp 中使用 URL 和领域充满信心。
  • @Mowshon 我不同意 HTTPS 方面。我刚才尝试了他们的 GET 请求:try it。也许你的 IP 被禁止了?
  • Rest api 为我工作没有问题,只是 ws 坏了

标签: c++ autobahn poloniex


【解决方案1】:

我可以使用 python3 从 wss://api2.poloniex.com 接收正确的分时订单簿数据 但有时 1002 频道可能会停止发送新的报价信息。

【讨论】:

    【解决方案2】:

    wss://api.poloniex.com:443 ;领域1

    这可能是我一直在使用 api2 的问题,这是有效的代码,并且在过去 2 个季度中一直在不间断地工作。它在 python 中,但应该很容易移植到 C++。

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    
    import websocket
    import json
    
    def on_error(ws, error):
        print(error)
    
    def on_close(ws):
        print("### closed ###")
        connection.close()
    
    def on_open(ws):
        print("ONOPEN")
        ws.send(json.dumps({'command':'subscribe','channel':'BTC_ETH'}))
    
    def on_message(ws, message):
        message = json.loads(message)
        print(message)
    
    websocket.enableTrace(True)
    ws = websocket.WebSocketApp("wss://api2.poloniex.com/",
                                  on_message = on_message,
                                  on_error = on_error,
                                  on_close = on_close)
    ws.on_open = on_open
    ws.run_forever()
    

    代码几乎不言自明(您可以在 Poloniex API 网站上查看所有通道/对),只需保存并在终端中运行

    python3 文件名.py

    应该在控制台输出上为您提供 BTCETH 原始订单和交易流。

    使用消息/订阅然后您可以随心所欲地使用它。

    【讨论】:

      【解决方案3】:

      Poloniex 中的 websocket 似乎不稳定。因此,我可以停止尝试让 Autobahn-Cpp 至少现在可以使用它并继续前进。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-19
        • 1970-01-01
        • 1970-01-01
        • 2013-03-18
        • 1970-01-01
        • 2021-12-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多