2016-01-13 5 views
0

Возможно ли добавить временную метку сервера в сообщениях, отправленных сервером ejabberd? Это поможет синхронизировать время работы сервера и клиента. Мне трудно найти историю сообщений в чате MUC.XMPP Обработка повторяющихся сообщений в MUC

Сценарий:

Позволяет сказать, что время Сервер T100 и что часы клиента составляет 10 секунд за время сервера (Назовём это время T90).

На T100 сервер отправляет клиенту сообщение M1. Клиент получает это сообщение в момент времени T90 (местное время Клиентов).

Затем клиент переходит в автономный режим и пытается присоединиться к группе. Клиент запрашивает все сообщения после времени T90 (поскольку последнее полученное сообщение M1 было получено клиентом при T90).

Сервер снова отправляет M1 клиенту, поскольку M1 имеет отметку времени T100.

Thanks,

ответ

0

Сообщения MAM имеют идентификаторы. Вы можете использовать эти идентификаторы для разбивки на страницы в архиве, получения сообщений и недосмотра.

+0

Я не уверен, как здесь будут помогать идентификаторы MAM. Допустим, что клиент присоединился к комнате и попросил историю комнаты, и сервер отправляет единственное сообщение с идентификатором MAM 'M1' обратно клиенту. Затем клиент получает 100 активных сообщений из комнаты. Клиент теперь отключается и пытается снова войти в комнату, запрашивая все сообщения после MAM id 'M1'. Клиент будет получать по меньшей мере 100 сообщений из истории комнаты, из которых первые 100 будут дублироваться. Пара вопросов. Являются ли идентификаторы Stanza Ids и MAM одинаковыми? Можно ли добавить крючок, который добавляет отметку времени для всех сообщений чата? –

+0

Идентификатор отличается, но если вы используете MAM для извлечения сообщений, тогда не получите сообщение об истории, вы можете запросить нулевые сообщения об истории при подключении. –

+0

Ну, я обязательно посмотрю на это. В настоящее время мне удалось написать привязку к тому, что добавляет отметку времени ко всем сообщениям группового чата :) –