2017-04-04 32 views
2

我有一個古怪的問題,高速公路| JS和Poloniex.com上的推送API。 我連接到他們的API來獲取他們的聊天中的所有消息,並在1-2小時後,websocket關閉沒有錯誤,沒有什麼可以幫助我調試。我已經測試了3種語言的行爲(PHP,NodeJS和JS)和2有問題(PHP和NodeJS),我的JavaScript測試從1天開始沒有問題。Websocket與高速公路停止響應幾個小時後

的代碼非常簡單:

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中的作品混淆了我。

+1

我有一個使用高速公路的問題,除了它在python上,poloniex api,市場話題上的問題。所以我猜想它遍歷所有的ws。但事情是,重新連接是一個問題,無法弄清楚如何重新連接。 – Ilhicas

+0

我本來希望今晚用Python進行測試,但是你確認我有同樣的問題。很奇怪。我認爲解決方案將是手動殺死套接字並重新啓動它,但我不喜歡那種方式。如果您找到解決方案,請分享,我也會這樣做。 – coolfarmer

+0

不要使用這個協議數據到達與巨大的延遲(~10小時),看看[這裏](https://stackoverflow.com/questions/42436264/reading-messages-on-poloniex-trollbox-with-python- autbahn-or-other-socket-module /)以獲取更多數據 –

回答

0

沒有找到解決方案,所以我實現了我的正確的「平」。我取消訂閱並訂閱每個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); 
})(); 
0

因此,trollbox目前無法正常工作,您斷開連接的原因是由於不活動。

,如果你想看看你可以看看網頁源在這裏 here ,並期待在2440線,並看到trollbox訂閱評論。