2016-11-18 6 views
0

IOS用のXMPPFrameworkを使用して、モバイルアプリケーションにチャット機能を実装しています。 部屋名機能を変更しました。管理者が部屋名を変更すると、サーバーはすべてのグループ受信者にメッセージを送信します。ただし、すべての受信者がオンラインの場合、ユーザーがグループに参加していない彼は彼が戻ってオンラインであってもメッセージを受け取ることができません。XMPPルーム構成の取得オフライン時のメッセージの変更

履歴パラメータを使用してグループ内の古いメッセージを取得していますが、これらの設定変更(およびサーバから追加または禁止されたユーザの情報)は受信できません。 私たちはそれをどのように解決できますか?

NSXMLElement *history = [NSXMLElement elementWithName:@"history"]; 
[history addAttributeWithName:@"seconds" stringValue:[NSString stringWithFormat:@"%.0f",disconnetSecond]]; 
[xmppRoom joinRoomUsingNickname:cusername history:history]; 

おかげ

答えて

2

で定義されている指示に従う必要があり、あなたは新しいMUC /サブアプローチを使用して、ノード上の構成の変更を購読することができ、「壷:XMPP:mucsub:ノード:コンフィグ」。 仕様はここに記述されています:https://docs.ejabberd.im/developer/xmpp-clients-bots/proposed-extensions/muc-sub/ XMPPFrameworkはまだサポートされていませんが、必要なものをサポートする必要があります。構成の変更をオフラインストアに配置することができます。

+0

私は既にmucsubの購読機能を追加しました。ただし、構成メッセージではなくmucsubからのプレゼンスメッセージの参加と離脱のみが受け付けられます – tolgatanriverdi

+0

urn:xmpp:mucsub:nodes:configノードに購読する必要があります –

0

あなたが部屋名としてRoom Subjectを使用している場合は、それが自動的にXMPPではサポートされています。また、changing room subjectがサポートされており、彼が部屋に参加するときにユーザーに送信されます。最終的に部屋に入るたびに更新された件名が表示され、UIに表示することもできますし、名前が変更されたことをユーザーに示すこともできます。

あなただけのejabberdでXEP-0045: Multi-User Chat

+0

いいえ私は部屋の構成から実際の部屋の名前を使用しています。また、グループから禁止されたり、グループに追加されたりしたときにも同じ問題が発生します。 禁止されたユーザーの時間帯にすべてのメンバーがオンラインになっていると誰にでも通知されますが、一部の参加者がオフラインの場合は、メッセージを取得しても禁止されたユーザー情報は受信されません。 – tolgatanriverdi

+0

そうしないと、ルーム構成の変更はオフラインユーザーには配信されません。 –

+0

件名の変更問題を解決したと言いますが、すべてのオフライン参加者を受け取るために、禁止された追加のユーザー情報を解決するにはどうすればいいですか? – tolgatanriverdi

関連する問題