2016-04-11 11 views
0

Ich habe 'Betreff' eines Chatrooms geändert, aber ich erhalte den letzten Betreffnamen nicht. Ich benutze 'disco # info', um die Zimmerinformationen zu erhalten. Als Antwort bekomme ich den Raumtitel, der ursprünglich beim Erstellen des Raums festgelegt wurde, aber nicht das aktuelle Raumthema. Wie bekomme ich das aktuelle Zimmer-Thema?Wie bekomme ich das aktuelle Zimmer von ejabberd/xmpp?

Antwort

1

Musste das erlang Modul "mod_muc_room.erl" anpassen.

Haben diese Änderungen in iq_disco_info_extras:

  1. eine neue Funktion "get_subject" geschaffen, die den Raum Thema von StateData bekommt.
  2. Es wurde ein neuer Parameter in "iq_disco_info_extras" hinzugefügt, um Raum Betreff zu erhalten und die Funktion 'RoomSubject = get_subject (StateData)' aufgerufen.
  3. hat ein neues RFIELD wie? RFIELD (< < "Room Thema" >>, < < "muC# roominfo_subject" >>, RoomSubject),
  4. das Modul "mod_muc_room.erl" zusammengestellt, die die aktualisierte " mod_muc_room.beam "Datei.

TA DA ... das hat wie ein Stück Kuchen funktioniert !!!

Nun wird der Subjektname in Roominfo angezeigt.

1

Im XMPP MUC-Protokoll sind Betreff und Titel zwei verschiedene Dinge. Der Titel wird über das Konfigurationsformular festgelegt und kann in der Service Discovery angezeigt werden. Betreff ist ein dynamisches Thema, das an den Teilnehmer gesendet wird, wenn er dem Raum beitritt. Das Thema wird nicht in der Disko # info Abfrage zurückgesendet. Nur Name und room_description werden in Discovery-Informationen zurückgesendet.

+0

Ich stimme dir zu. Aber wenn ich das Thema für das Zimmer ändere, bekomme ich es nicht in Disco # Info. Ich bekomme immer das alte Thema. –

+0

Wie gesagt, das Thema wird in disco # info nicht angezeigt. Du erhältst name und room_description, aber keinen Betreff. Sie erhalten kein altes Thema, Sie erhalten eine Beschreibung, die separate Daten sind. –

+0

ok. Also, wo bekomme ich das neueste Zimmer Thema? –