Каталог XMPP Query Group Chat (MUC), использующий поисковый запрос - PullRequest
1 голос
/ 03 февраля 2012

Создание клиента XMPP, часть которого включает запрос каталога для комнат чата, чье имя соответствует определенному поисковому запросу. Позволяет назвать этот поисковый запрос ПОИСК.

Следующий XML (с правильным значением to / from) дает мне список всех чатов.

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

пример результата:

<iq xmlns="jabber:client" type="result" id="disco2" from="chat.shakespeare.lit" to="hag66@shakespeare.lit/pda">
    <query xmlns="http://jabber.org/protocol/disco#items">
        <item jid="example@shakespeare.lit" name="Example"/>
    </query>
</iq>

Однако мне нужно запрашивать только те чаты, которые соответствуют определенному термину. Если посмотреть на синтаксис XMPP XML, похоже, что один из этих XML-запросов должен работать:

<iq type="get" from="hag66@shakespeare.lit/pda" to="chat.shakespeare.lit" id="disco2">
    <query xmlns="jabber:iq:search">
        <x xmlns="jabber:x:data" type="get">
            <field var="name">
                <value>*SEARCH*</value>
            </field>
        </x>
    </query>
</iq>

Или это:

<iq type="set" from="hag66@shakespeare.lit/pda" to="chat.shakespeare.lit" id="search2">
    <query xmlns="jabber:iq:search">
        <item name="*SEARCH*"/>
    </query>
</iq>

Я попытался переключить «get» в «set» и наоборот. Я также попытался удалить шаблон и выполнить буквальный поиск комнаты, которая, как я знаю, существует.

Кто-нибудь знает, каков правильный синтаксис для поиска одного или нескольких имен (с подстановочными символами) в одном запросе из службы XMPP MUC?

РЕДАКТИРОВАТЬ: мой сервер XMPP поддерживает следующие функции для службы группового чата

<iq xmlns="jabber:client" type="result" from="chat.shakespeare.lit" to="hag66@shakespeare.lit/pda">
    <query xmlns="http://jabber.org/protocol/disco#info">
        <identity category="conference" name="Public Chatrooms" type="text"/>
        <identity category="directory" name="Public Chatroom Search" type="chatroom"/>
        <feature var="http://jabber.org/protocol/muc"/>
        <feature var="http://jabber.org/protocol/disco#info"/>
        <feature var="http://jabber.org/protocol/disco#items"/>
        <feature var="jabber:iq:search"/>
        <feature var="http://jabber.org/protocol/rsm"/>
    </query>
</iq>

Есть идеи? Кто-нибудь? Я бы согласился получить список чатов, которые я создал?

...