私は時々すべての加入者にいくつかのメッセージを送るサーバを持っています。一言で言えば、たぶん1ヶ月に1つです。たぶん1日に100を送る必要があり、それ以降はもっと送ることなく数ヶ月を費やすでしょう。しかし、私はそれができるようにする必要があります。zmqサブスクライバで自動再接続
これまでは、Pythonでパブリッシャを持っていて、フレームとサブスクライバをPythonでも各エンドデバイスに送りました。最後のデバイスのスクリプトはしばらくしてから切断されているようです。私のテストでは、私はしばらくの間メッセージを送信できますが、私が約10分間送信すると、次のメッセージは受信されません。
加入者がハートビートなどを随時送信する方法はありますか?または、切断を検出してできるだけ早く再接続しますか?私はメッセージコントロールを持っているのでパッケージを見逃しても構いません。サーバーが応答を受け取っていない場合は、次の分以内にメッセージコントロールを受信します。
私は、サーバーに接続するには、このコードを持っている:
portSubOuter = "6100"
context = zmq.Context()
socketOuter = context.socket(zmq.SUB)
socketOuter.connect("tcp://my_domain_url:%s"% portSubOuter)
socketOuter.setsockopt(zmq.SUBSCRIBE, '')
をそして、これは読むために私のコードです:
macRecv = socketOuter.recv()
print "Packet for mac: %s"%macRecv
if macRecv == repr(myMACOuter):
more = True
while more:
part_received = socketOuter.recv()
part.append(part_received)
more = socketOuter.getsockopt(zmq.RCVMORE)
....
私は出版社側のハートビートを実装する必要がありますか? 2分ごとにメッセージを送信するようにしますか?
これを確認するには、日曜日まで待つ必要があります。しかし、私はPythonで実装しようとします。ほぼ同じようなものがあることをほとんど確信してください。ありがとうございました。最終的なコードを実装するとすぐに投稿を更新します。 – Biribu
@Biribuそれはあなたのために働くのですか? – jab