Насколько я знаю, вы можете получить историю чата из комнаты, только если эта комната была настроена на постоянное хранение и настроена на регистрировать беседы. Также существует ограничение на то, сколько дней назад сервер возвращает историю. Раньше ограничение составляло 2 дня, но было длительное обсуждение и несколько исправлений для исправить это ограничение.
Согласно другому вопросу здесь, на SO, невозможно получить история через прямой HTTP-запрос без предварительного проксирования истории через отдельный сервер XMMP, это то, что вы пытаетесь сделать, или вы разговариваете с сервером Openfire?
В заключение, похоже, то, что вы хотите, было бы возможно. Согласно спецификации XMPP любой новый пользователь получит полную историю комнаты при присоединении, при условии, что комната была настроена на ее отправку. Таким образом, простое присоединение к правильно настроенной комнате в качестве случайно созданного пользователя предоставит вам историю, которую вы ищете.
Поэтому, в зависимости от того, относится ли это к сервису, который вы запускаете, или если вы пытаетесь заархивировать чужой сервер, ваш пробег может насторожить. Если вы настроите сервер, это будет возможно, даже если не с помощью специального вызова API. Однако, если служба находится вне вашего контроля, вам может не повезти, так как истории может просто не быть ...
Надеюсь, это вам немного помогло, даже если я не могу дать конкретное решение.
Обнаружение службы
Согласно документации по обнаружению службы, ваш запрос не завершен:
<iq type='get'
from='[email protected]/orchard'
to='plays.shakespeare.lit'
id='info1'>
<query xmlns='http://jabber.org/protocol/disco#info'/>
</iq>
Возможно, вам стоит немного почитать о том, как выполнить базовое подключение к службе XMPP с помощью драгоценного камня? Похоже, это то, что вам нужно, чтобы начать. У них есть много примеров, которые должны немного помочь вам со спецификой драгоценных камней ...
person
Jonas Schubert Erlandsson
schedule
03.02.2013