2016-04-11 37 views
0

Sohbet odasının 'Konuyu' değiştirdim, ancak bu son konu adını almıyorum. Oda bilgilerini almak için 'disco # info' kullanıyorum. Yanıt olarak, odayı oluştururken başlangıç ​​odaya ayarlanmış oda başlığını alıyorum. En son oda konusunu nasıl alabilirim?En son oda konusu ejabberd/xmpp'den nasıl edinilir?

cevap

1

"mod_muc_room.erl" modülünü özelleştirmek gerekiyordu. StateData gelen oda konusunu alır yeni bir fonksiyon "get_subject" düzenlendi

  1. :

    iq_disco_info_extras bu değişiklikleri yaptı.
  2. Oda konusunu almak ve 'RoomSubject = get_subject (StateData)' işlevini çağırmak için "iq_disco_info_extras" alanına yeni bir parametre eklendi.
  3. Eklendi gibi yeni bir RFIELD? RFIELD (< < "Oda özne" >>, < < "muC# roominfo_subject" >>, RoomSubject)
  4. güncellenmiş modül "mod_muc_room.erl", Derleyen, " mod_muc_room.beam "dosya.

TA DA ... bir parça kek gibi çalıştı!

Şimdi konu adı odaya alın.

1

XMPP MUC protokolünde, Konu ve başlık iki farklı şeydir. Başlık konfigürasyon formuyla belirlenir ve servis keşfinde gösterilebilir. Konu, o odaya katıldıklarında katılımcıya gönderilen dinamik bir konudur. Konu diske # info sorgusuna geri gönderilmez. Sadece isim ve room_description keşif bilgilerine geri gönderilir.

+0

Sana katılıyorum. Ama oda için konuyu değiştirirsem, diske # bilgi almıyorum. Her zaman eski konuyu ele alıyorum. –

+0

Dediğim gibi, konu diske # info olarak gösterilmiyor. Ad ve room_description olsun, ama konu değil. Eski konu almıyorsunuz, ayrı bir veri olan bir açıklama alıyorsunuz. –

+0

tamam. En son oda konularını nereden alacağım? –