aboutsummaryrefslogtreecommitdiffstats
path: root/twittperator.js
diff options
context:
space:
mode:
authoranekos2010-09-21 22:49:38 +0000
committeranekos2010-09-21 22:49:38 +0000
commit94512d5968f72cda57b1340c765853bbad1ac316 (patch)
tree844e5a1ca6d42518300251c1f0b0d641e5143345 /twittperator.js
parent626a8e60a41754ef5042d865b205fd9d0fa46d9a (diff)
downloadvimperator-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-xtwittperator.js15
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) {