2016-04-11 14 views
0

チャットルームの「件名」を変更しましたが、最新の件名が表示されません。私は 'ディスコ#情報'を使用して部屋の情報を取得しています。それに応じて、私は部屋を作成しながら最初に設定された部屋のタイトルを取得しますが、最新の部屋のテーマは取得しません。最新の部屋のテーマを取得するにはどうすればいいですか?ejabberd/xmppから最新の部屋のテーマを取得するには?

答えて

1

erlangモジュール "mod_muc_room.erl"をカスタマイズする必要がありました。

  1. StateDataから部屋の件名を取得する新機能 "GET_SUBJECT" を作成:

    はiq_disco_info_extrasにおけるこれらの変化はなかったです。

  2. "iq_disco_info_extras"に新しいパラメータを追加してルームの件名を取得し、 'RoomSubject = get_subject(StateData)'という関数を呼び出しました。
  3. 「更新モジュール "mod_muc_room.erl" を、コンパイル
  4. 、(RoomSubject、>> "MUC#のroominfo_subject"、< < "ルーム件名" >> < <を)?RFIELDとして新しいRFIELDを追加しましたmod_muc_room.beam "ファイル。

TA DA ...ケーキのように機能しました!

ここでroominfoのサブジェクト名を取得しています。

1

XMPP MUCプロトコルでは、件名とタイトルは2つの異なるものです。タイトルは設定フォームで設定され、サービスディスカバリに表示されます。サブジェクトは、ルームに参加するときに参加者に送信される動的なトピックです。件名はディスコ#情報クエリで返信されません。名前とroom_descriptionだけがディスカバリ情報に返送されます。

+0

私はあなたに同意します。しかし、もし私が部屋の主題を変えたら、私はディスコ#情報でそれを取得していません。私はいつも古いものを手に入れている。 –

+0

私が言ったように、件名はdisco#infoには表示されません。あなたは名前とroom_descriptionを取得しますが、件名は取得しません。あなたは古いテーマを取得していない、別のデータです説明を取得しています。 –

+0

ok。だから、どこで最新の部屋のテーマを取得するのですか? –

関連する問題