Я использую XMPP pubsub. Все работает нормально. Пользователь может создать узел, и заинтересованный пользователь может подписаться на этот узел. Но я хочу сохранить действие публикации в DB. Потому что в моем приложении многие вещи обрабатываются pubsub, например, чатом., каналы и т.д., так что при обновлении страницы я хочу сохранить чат. Так что я ищу любой плагин openfire, который сохраняет его в БД за кулисами.Как openfire сохраняет чат в случае MUC (многопользовательский чат). Я не хочу вручную отправлять ajax-запрос.Поэтому есть ли способ зарегистрировать элементы публикации.
Обновление:
В моей конфигурации формы возникла проблема, из-за которой для постоянных элементов было установлено значение false по умолчанию. Поэтому я настроил узел какВы предложили. Но снова я столкнулся с некоторой проблемой при обновлении страницы. Я объясню вам на примере.В моем приложении пользователь A входит в систему и создает узел, и при успешном создании он отправляет запрос пользователю B, теперь пользователь B подписывается на узел, созданный пользователем A. Теперь, если какой-либо пользователь обновляет страницу, я отправляю раздел IQ типа getчтобы получить все пропущенные события, как те, что вы упомянули выше. Но я получаю subid-required ошибки 400.
<body rid='430432056' xmlns='http://jabber.org/protocol/httpbind' sid='dca8aafc'><iq to='pubsub.abc' type='get' xmlns='jabber:client' id='3408:sendIQ'><pubsub xmlns='http://jabber.org/protocol/pubsub'><items node='3821poU5zq7nhn1'/></pubsub></iq></body>
В ответ я получаю:
<body xmlns='http://jabber.org/protocol/httpbind'><iq type="error" id="3408:sendIQ" from="pubsub.abc" to="test@abc/dca8aafc"><pubsub xmlns="http://jabber.org/protocol/pubsub"><items node="3821poU5zq7nhn1"/></pubsub><error code="400" type="modify"><bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><subid-required xmlns="http://jabber.org/protocol/pubsub#errors"/></error></iq></body>
Так может помочьмне, где я ошибаюсь. Также я читаю ссылку http://xmpp.org/extensions/xep-0060.html#owner-configure точка: 6.5.9.1, которая говорит, что если запрашивающий объект имеет несколько подписок на узел, но не указывает идентификатор подписки, служба ДОЛЖНА вернуть ошибкуподписчик. Значит ли это, что я снова подписываюсь на тот же узел?Я проверил, так ли это, но я подписываюсь только один раз. Так что просто выясняю, где что-то не так.