diff options
author | anekos | 2010-09-21 22:49:38 +0000 |
---|---|---|
committer | anekos | 2010-09-21 22:49:38 +0000 |
commit | 94512d5968f72cda57b1340c765853bbad1ac316 (patch) | |
tree | 844e5a1ca6d42518300251c1f0b0d641e5143345 /twittperator.js | |
parent | 626a8e60a41754ef5042d865b205fd9d0fa46d9a (diff) | |
download | vimperator-plugins-94512d5968f72cda57b1340c765853bbad1ac316.tar.bz2 |
接続死んだ疑惑のときに再接続
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@38506 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'twittperator.js')
-rwxr-xr-x | twittperator.js | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/twittperator.js b/twittperator.js index 04fda78..8d45e3d 100755 --- a/twittperator.js +++ b/twittperator.js @@ -1230,6 +1230,7 @@ let PLUGIN_INFO = let restartCount = 0; let startTime; let lastParams; + let lastReceivedTime; // 極めて適当につくってます。 // ステータスに対してユニークな文字列を返せばよい @@ -1273,7 +1274,7 @@ let PLUGIN_INFO = stop(); - startTime = new Date(); + startTime = new Date().getTime(); lastParams = params; let useProxy = !!setting.proxyHost; @@ -1321,14 +1322,22 @@ let PLUGIN_INFO = let interval = setInterval(function() { try { let len = sis.available(); - if (len <= 0) + if (len <= 0) { + // 30秒ごとにゴミデータを送ってくる仕様っぽいので、30x2+10秒 まつことにする。 + if (lastReceivedTime && ((new Date().getTime() - lastReceivedTime) > 70 * 1000)) { + lastReceivedTime = 0; + liberator.echoerr("Twittperator: " + name + " timed out"); + restart(); + } return; + } // 5分間接続されていたら、カウントをクリア // 何かの事情で即切断されてしまうときに、高頻度でアクセスしないための処置です。 - if (restartCount && (new Date().getTime() - startTime.getTime()) > (5 * 60 * 1000)) + if (restartCount && (new Date().getTime() - startTime) > (5 * 60 * 1000)) restartCount = 0; + lastReceivedTime = new Date().getTime(); let data = sis.read(len); let lines = data.split(/\r\n|[\r\n]/); if (lines.length >= 2) { |