在 asmack QuickBlox 中获取扩展房间信息

Posted

技术标签:

【中文标题】在 asmack QuickBlox 中获取扩展房间信息【英文标题】:get extended room info in asmack QuickBlox 【发布时间】:2013-08-12 09:51:36 【问题描述】:

如何在 asmack 中获取扩展房间信息(包括入住人数、房间主题等)(无需加入房间)?我正在使用 getRoomInfo() 方法,它使用 disco#info 协议将数据包发送到服务器:

<iq from='hag66@shakespeare.lit/pda'
    id='ik3vs715'
    to='coven@chat.shakespeare.lit'
    type='get'>
  <query xmlns='http://jabber.org/protocol/disco#info'/>
</iq>

问题是,我收到的是标准数据包,没有其他信息:

<iq from='coven@chat.shakespeare.lit'
    id='ik3vs715'
    to='hag66@shakespeare.lit/pda'
    type='result'>
  <query xmlns='http://jabber.org/protocol/disco#info'>
    <identity
        category='conference'
        name='A Dark Cave'
        type='text'/>
    <feature var='http://jabber.org/protocol/muc'/>
    <feature var='muc_passwordprotected'/>
    <feature var='muc_hidden'/>
    <feature var='muc_temporary'/>
    <feature var='muc_open'/>
    <feature var='muc_unmoderated'/>
    <feature var='muc_nonanonymous'/>
  </query>
</iq>

我想收到的数据包(带有附加信息)如示例中所示:

<iq from='coven@chat.shakespeare.lit'
    id='ik3vs715'
    to='hag66@shakespeare.lit/pda'
    type='result'>
  <query xmlns='http://jabber.org/protocol/disco#info'>
    <identity
        category='conference'
        name='A Dark Cave'
        type='text'/>
    <feature var='http://jabber.org/protocol/muc'/>
    <feature var='muc_passwordprotected'/>
    <feature var='muc_hidden'/>
    <feature var='muc_temporary'/>
    <feature var='muc_open'/>
    <feature var='muc_unmoderated'/>
    <feature var='muc_nonanonymous'/>
    <x xmlns='jabber:x:data' type='result'>
      <field var='FORM_TYPE' type='hidden'>
        <value>http://jabber.org/protocol/muc#roominfo</value>
      </field>
      <field var='muc#roominfo_description' 
             label='Description'>
        <value>The place for all good witches!</value>
      </field>
      <field var='muc#roominfo_changesubject' 
             label='Occupants May Change the Subject'>
        <value>true</value>
      </field>
      <field var='muc#roominfo_contactjid' 
             label='Contact Addresses'>
        <value>crone1@shakespeare.lit</value>
      </field>
      <field var='muc#roominfo_subject' 
             label='Current Discussion Topic'>
        <value>Spells</value>
      </field>
      <field var='muc#roomconfig_changesubject' 
             label='Subject can be modified'>
        <value>true</value>
      </field>
      <field var='muc#roominfo_occupants' 
             label='Number of occupants'>
        <value>3</value>
      </field>
      <field var='muc#roominfo_ldapgroup' 
             label='Associated LDAP Group'>
        <value>cn=witches,dc=shakespeare,dc=lit</value>
      </field>
      <field var='muc#roominfo_lang' 
             label='Language of discussion'>
        <value>en</value>
      </field>
      <field var='muc#roominfo_logs' 
             label='URL for discussion logs'>
        <value>http://www.shakespeare.lit/chatlogs/coven/</value>
      </field>
      <field var='muc#maxhistoryfetch'
             label='Maximum Number of History Messages Returned by Room'>
        <value>50</value>
      </field>
      <field var='muc#roominfo_pubsub' 
             label='Associated pubsub node'>
        <value>xmpp:pubsub.shakespeare.lit?;node=the-coven-node</value>
      </field>
    </x>
  </query>
</iq>

如何获取有关我的房间的更多信息?我正在使用 QuickBlox API 和他们的服务器谢谢

【问题讨论】:

【参考方案1】:

很遗憾,QuickBlox 聊天服务器目前仅支持简短的房间信息。

我建议您使用CustomObjects 记录来包装聊天室并存储任何额外的房间信息

【讨论】:

以上是关于在 asmack QuickBlox 中获取扩展房间信息的主要内容,如果未能解决你的问题,请参考以下文章

Quickblox 消息获取最后 n 条消息

在 QuickBlox 中与会话请求一起传递扩展数据时出现问题

asmack 是不是有类似于 smackx 的扩展 jar?

在android中使用asmack获取错误的请求400错误

Android aSmack - 如何为文件发送自定义消息扩展名?

无法使用 asmack 版本 asmack-android-8-4.0.6.jar 在 xmpp 中返回组列表