原因は完全に私のミスですが、再発防止の意味も込めてまとめ。
先日投稿した「【Cordova】TCPプロトコルを介してサーバーと通信するためのプラグイン「cordova-plugin-socket-tcp」」という記事で紹介したプラグイン「cordova-plugin-socket-tcp」でサーバーとの接続が一定時間後に何故か切れてしまう時の対処法です。
GitHub のページはこちら。
GitHub – kitolog/sockets-for-cordova: Cordova plugin for socket network communication
https://github.com/kitolog/sockets-for-cordova
発生していた現象は、メソッド .open()
を使って、指定したサーバーに接続した際、一定時間が経過すると、onError
と onClose
ハンドラが呼ばれるという物でした。
なお、その際のエラーは「Read timed out」でした。
また、後輩君のアドバイスで、数秒間隔でデータを送り続ければ途切れないのでは?とのアドバイスも頂きましたが、実装しても意味はなかったです…。
で、こちらの対処法ですが、プラグインを入れ直すことで解決できました…!
プラグインインストール時に、ドキュメントに記載されているコマンドではなく、下記のコマンドを実行してしまったことが原因でした。
cordova plugin add https://github.com/kitolog/sockets-for-cordova.git
正しいコマンドはこちら。
cordova plugin add cz.blocshop.socketsforcordova
以前、他のプラグインで上記のようにドット区切りのプラグインを指定したところ、インストールに失敗したので、GitHub のURLを指定したんですよね。
で、今回も失敗するかもしれないと考えて、最初から URL を指定したところ、バグに遭遇しました…。
謎のアレンジを効かせた私が悪いということでした。
プラグインを正しいコマンドで入れ直したところ、問題なく動作するようになりました。
以上、Cordova のプラグイン「cordova-plugin-socket-tcp」が正常に動作しない時の対処法でした。
参考になれば幸いです。
あと、私のように変な修正はしないようにしてください。