我在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();
我已经使用主管测试了NodeJS和同样的问题,1-2小时后,没有响应,没有错误,只是没有收到消息了。
我是websocket的新手,所以我想我可以测试更多但是Javascript中的所有工作都让我很困惑。
答案 0 :(得分: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);
})();
答案 1 :(得分:0)
因此trollbox现在无法正常运行,导致断线的原因是由于不活动。
如果您想查看它,可以在此处查看网站来源 here 并查看第2440行并查看trollbox订阅是否已注释。