ニコ生コメビュ「やります!アンコちゃん」 ver2.5.0.3 リリースのお知らせ
大きな事故もなくXMLSocket廃止されたようで、何より。
未対策のアンコちゃんは盛大に落ちたようですが・・
ちらほらお聴きする不具合でコメントサーバから切断される事象について手探りで対応してみました。
- 修正内容
-コメントサーバから切断される事象に対応(したつもり)
詳細は長い話なので、後半で書きたいと思います。
-XMLSocketURLを参照していた箇所の内部エラー修正
コッソリぬるぽしてました。
-公式、チャンネルの時に表示されない不具合を修正
コメント番号がない配信は読み上げを抑止できないので、コメント欄を右クリックして「読み上げ待ちクリア」をお使いください
- ダウンロード
インストーラー版
https://ux.getuploader.com/izakaya_megane/download/617
Zip版
https://ux.getuploader.com/izakaya_megane/download/616
- コメントサーバから切断される事象に対応のお話
WebSocketのコネクションは2つあって、部屋情報とか、運用コメント送信、配信終了時刻などいろいろな情報のやり取りをする、コントロール接続
コメントの送受信をするコメント接続
ブラウザの開発者モードでログをとりつつ、寝落ちしていましたw
ブラウザだと3時間の間に3回切断されていました。
時間→
control接続 23:32:24 ~ 02:54:54
コメント① 23:32:25 - 23:53:24
コメント② 23:54:16-00:03:16
コメント③ 00:04:14 - 00:31:14
コメント④ 00:32:07-
コメントが無くてもkeepaliveの通信を流しているので無通信ではないようにしてあります。なので無通信だから切れているわけではない様子。
切れてから次のコネクション接続まで1分あるのはkeepalive送信に失敗して、新しいコネクションを作っているのかなーと推測
ブラウザでももしかしたら1分間コメントが来ないことがあるのかもしれないのかな?
このコメントのサーバはキャッシュサーバというものらしく、仕様通りならコントロール接続を通じて再接続要求とか出すんじゃないかな?なんて思ったりするけど、そういうコマンドは流れていませんでした・・たぶん。
という状況からwebsocketのコンポーネントがエラーが出たときと、クローズ要求があったときに、アンコちゃんを落としたり、切断させたりしない以外は再接続させるようにしてみました。
↟対策がちがうよーって突っ込みあったら教えてください
最後のコメント番号を保持しているので、ダブることはないはず。
あ、コメント番号がない配信はごめんなさい。ダブって受信させてしまいます。
ブラウザ同様、過去150件を要求しています。
ノウハウがたまってきたら今後、コントロール接続についても再接続の機能を盛り込んでいこうと思います。