前にもMQTTはやっていて問題なく動作する他人のプログラムを採用して使っていたところが、先週金曜日の帰り間際に問題が出た。続けて送信を何回もするとしばらくしてエラーが出て回復しない。
別に何も変えていないはずなのに?
いろいろやってみて、connectの後にpublish(送信)、そして再度connectのpublish、connect、publishしているとダメになるようだった。よく見るとdisconnectと言う関数もあった。なのでpublishの後にdisconnectを挟んでみたたエラーは出なくなった。
FBで相談したらMQTTにはkeepaliveと言うのがあって、何も指定しないと60秒だとか。その間にデータ送信が無くてもpingを送れ、送ったと言う相手確認が行われているそう。今回の問題はデータを送らないのではなくて、keepaliveの時間gq終わってないうちに再度connectしてしまっているのがダメな可能性が高い。
しかしながら仕様上はかなりの数、数万など、クライアントがあっても問題無さそうに書いてあるのだが?
それは置いておいて、まずkeepaliveの試験だけれど、デフォルトで何も指定無しでも1時間後に送ると再接続ができていた。なぜか?...不明。とりあえず、ループになっていて連続して送信できるらしい。が、もしかすると遠い将来それも有限かも知れないので、一定回数送信したらdisconnectして再connectするようにしておく事にした。それでも何の支障も無さそうなので。
それから、これまでのテストでは送信するデータは1個だったのを複数対応にした。計算値も一緒に送る事にしたから。また、サイクルタイムが長い行程の場合、サイクルタイムを待ってから受信側の画面更新になると空白期間ができるので送信データが無い場合に前のデータを1分置きに送るようにした。1分なら待てるだろう。
今日はここまで。
最新の画像もっと見る
最近の「マレーシアでニャー2019」カテゴリーもっと見る
最近の記事
カテゴリー
- 日本でニャー2025(14)
- 日本でニャー2024(344)
- 猫の治療(34)
- 猫の引越(17)
- 癌になる(25)
- 日本でニャー2023(333)
- 日本でニャー2022(98)
- マレーシアでニャー2022(244)
- マレーシアでニャー2021(355)
- マレーシアでニャー2020(277)
- マレーシアでニャー2019(280)
- マレーシアでニャー2018(238)
- マレーシアでニャー2017(241)
- マレーシアでニャー(321)
- 長いようで短い5年目マレーシア(5)
- どうにか4年目マレーシア(157)
- 3年目に突入マレーシア(358)
- 2年目のマレーシア(428)
- まさか、マレーシア!(409)
- 英語やるぞ!(140)
- いい歳して大学へ(13)
- 台湾-非観光的(78)
- 備忘録バリとインドネシア(24)
- Vespa? Yes, but LML !(218)
- カンガルーじゃないKangoo(108)
- Photo Photo(117)
- 日本脱出(140)
- 美食満腹(104)
- 映画って !(292)
- いろいろ雑記帖(394)
- これってスゴイ!(92)
- Puppy で Go!(20)
- ABCのAはArduinoのA(68)
バックナンバー
人気記事