paho-mqtt(+Python3.6)を使い、メッセージの配信をするプログラム(publish/subscribe)を作っています。
例えば、10台のクライアントにメッセージを配信する必要があるとします。そのうち、1台だけがメッセージが配信された時点でオフライン(もしくはsubscribeしていない)であった場合、まずは残りの9台にメッセージを配信し、オフラインの1台がsubscribeした段階で、その1台だけにメッセージを配信する方法はあるでしょうか?ただし、一旦全てのクライアントにメッセージが配信されて後には、再度いずれかのクライアントがsubscribeしたとしても、配信済のメッセージは再送されない様にする必要があります。
publisher側の設定を以下の様にすると、オフラインの1台がsubscribeした時点でメッセージの受信をすることは可能なのですが、その後にいずれかのクライントがオフラインなり、再度subscribeすると、ブローカー上に残っている(retainされている)、既に配信済みのメッセージを何度でも受信してしまいます。
client.publish("python/haishin",msg,0,retain=True)
ご存知の方、教えて下さい。
あなたの回答
tips
プレビュー