Создание клиента 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>
Есть идеи?
Кто-нибудь? Я бы согласился получить список чатов, которые я создал?