2

我对 Autobahn|JS 和 Poloniex.com 上的推送 API 有一个奇怪的问题。我连接到他们的 API 以获取他们聊天中的所有消息,并在 1-2 小时后,websocket 关闭且没有错误,没有什么可以帮助我调试。

我已经测试了 3 种语言(PHP、NodeJS 和 JS)的行为,其中 2 种有问题(PHP 和 NodeJS),我的 JavaScript 测试从 1 天开始运行没有问题。

代码非常简单:

var connection = new autobahn.Connection({url: 'wss://api.poloniex.com', realm: 'realm1'});

connection.onopen = function (session) {
   function onevent(args) {
      console.log("Message:", args[3]);
   }
   session.subscribe('trollbox', onevent);
};

connection.open();

我已经用Supervisor测试了 NodeJS 和同样的问题,1-2 小时后,没有响应,没有错误,只是不再收到消息。

我是 websocket 的新手,所以我想我可以测试更多,但所有在 Javascript 中工作的事实让我感到困惑。

4

2 回答 2

0

没有找到解决方案,所以我实施了正确的“ping”。我每 X 分钟退订和订阅一次(我的测试从 1 天开始运行,间隔 5 分钟)。不会再断开连接,也不会错过来自 trollbox 的消息。

AUTOBAHN_DEBUG = true;

var autobahn = require('autobahn');

(function trollbox() {

  console.log("\n------------- OPEN CONNECTION ---------------\n");
  var connection = new autobahn.Connection({
    url: 'wss://api.poloniex.com',
    realm: 'realm1',
    max_retries: -1
  });

  connection.onopen = function (session) {
    function onevent (args) {

      // Do somethings...
      console.log(args[3]);
    }
    session.subscribe('trollbox', onevent);

    setTimeout(function () {
      console.log("\n------------- CLOSING CONNECTION ---------------\n");
      connection.close();
    }, 300000);

  };

  connection.open();

  setTimeout(trollbox, 300200);
})();
于 2017-04-06T21:53:13.887 回答
0

所以Trollbox现在无法正常工作,您断开连接的原因是由于不活动。

如果你想检查它,你可以在这里查看网站源代码 查看第 2440 行,并查看对 trollbox 订阅进行了评论。

于 2017-06-11T16:22:05.943 回答