2

ユーザー jid に関連付けられたすべてのユーザー リソースに Openfire から招待メッセージを送信するのに問題があります。私は Openfire (3.9.3) と Strophe (1.1.3) を使用しています。

ユーザーの jid には、openfire にログインしている 2 つのリソースがあります (例: userA@chat.mychatserver.com/e1ef0b84、userA@chat.mychatserver.com/fa51aad7)。

ルームに参加するために、MUC 招待メッセージをユーザー (つまり、userA) に送信しました。

<?xml version="1.0"?>
<message xmlns:stream="http://etherx.jabber.org/streams"
   xmlns="jabber:client" from="chatRoom@se.dev.openfire" to="userA@dev.openfire"
   version="1.0">
  <x xmlns="http://jabber.org/protocol/muc#user">
    <invite from="userB@dev.openfire"/>
  </x>
  <x xmlns="jabber:x:conference" jid="chatRoom@dev.openfire"/>
</message>

招待は両方のリソース (例: userA@chat.mychatserver.com/e1ef0b84、userA@chat.mychatserver.com/fa51aad7) に送信されると予想していましたが、最後にログインしたリソースにのみ送信されるようです。たとえば、電話に userA としてログインし、ラップトップに userA としてログインした場合、招待はラップトップ ユーザーにのみ送信されます。

Openfire は通常の xmpp メッセージを両方のユーザー リソースに正しくルーティングしているようです。

これが可能かどうかは誰にもわかりませんか?

ありがとう、スティーブ

4

2 に答える 2

1

グループ招待も通常のメッセージとして扱われ、接続されているすべてのリソースにルーティングされる必要があります。
ただし、接続されているすべてのリソースにメッセージをルーティングするために、Openfire には次のロジックがあります。
プレゼンス優先度が最も高いセッションを選択します。資格のあるセッションがない場合、メッセージはオフライン ストアに保存されます。同じ優先度のセッションが複数見つかった場合、Openfire はよりスマートになります。 ) つまり、「route.all-resources」プロパティの値を確認します。
「route.all-resources」が true の場合、メッセージは選択されたすべてのセッションにルーティングされます。値が false の場合、表示値 (chat、available、a​​way、xa) に基づいてセッションを並べ替え、結果を再度並べ替えます。最後にアクティブな時間に、最後に最初の結果を選択し、メッセージをそのセッションにルーティングします。

于 2016-03-09T21:07:50.160 に答える
0

注意: XEP-0045によると、userB から userA を招待する XML は次の形式です。

<message
    from='userB@dev.openfire'
    to='chatRoom@se.dev.openfire'>
  <x xmlns='http://jabber.org/protocol/muc#user'>
    <invite to='userA@dev.openfire'>
      <reason>
        Hey UserA, this is the place for all good witches!
      </reason>
    </invite>
  </x>
</message>

XMPP サーバー (この場合は Openfire) は、XML を送信するために提供する必要があります。

<message
    from='chatRoom@se.dev.openfire'
    to='userA@dev.openfire'>
  <x xmlns='http://jabber.org/protocol/muc#user'>
    <invite from='userB@dev.openfire'>
      <reason>
        Hey UserA, this is the place for all good witches!
      </reason>
    </invite>
    <password>xyz</password>
  </x>
</message>

PS: もう 1 つの方法は、直接招待することです (XEP-0045 のように部屋によって仲介されません)。http://xmpp.org/extensions/xep-0249.html を参照してください

于 2016-02-24T20:00:32.963 に答える