2017-10-27 3 views
0

私はswiftを使用してiOSで作業しています。私は私のiOSアプリケーションで使用しているココアmqttプロトコルを使用しています。 私はまた、メッセージブローカー用にActivemqを使用しています。cocoaMQTTを使用してiOSでサブスクライバをオフラインにする方法

目的

私はActiveMQのに作られて話題に加入しました。その後、ActiveMQのトピックから退会すると、トピックのサブスクライバのままで、メッセージは受信されません。それはオフラインになる。

サブスクライバが再度アクティブになったときに、トピックから保留中のメッセージを消費できるようにする必要があります。

問題文

私がトピックから退会する場合、ユーザーは私が得ること(私はそれらを受信しません)もはや話題の加入者であると話題に送信されたすべてのメッセージが失われます退会時の期間に

答えて

0

この問題の1つの解決策は、MQTTに組み込まれた保持されたメッセージング機能を使用することです。前のセッションですでに受信している場合でも、トピックごとに公開された最後のメッセージが届きます。

もう1つの解決策は、送信されたメッセージにQoS 1または2を使用することです。アプリがcleanSessionと接続してfalseに設定され、メッセージがQoS 1または2で公開された場合、ブローカから切断された間に送信されたメッセージが表示されます。

MQTT QoSの詳細については、hereを参照してください。

関連する問題