Ejabberd с управлением потоком (XEP-198) не использует офлайн-перехват сообщений

Мы разрабатываем приложение с функцией чата. У нас есть ejabberd (15.02), настроенный на использование mod_offline_post для использования ловушки автономных сообщений и пересылки всех сообщений для автономных клиентов на собственный URL, который затем пересылается в GCM.

Однако, поскольку мы разрабатываем приложение, нам также необходимо включить XEP-198 (управление потоками) для обработки потери соединения. Это работает нормально само по себе. Потоки создаются и возобновляются, сообщения подтверждаются.

Проблема в том, что jabber ожидает возобновления потока и не пересылает какие-либо офлайн-сообщения в офлайн-хук сообщений и, следовательно, в наш мод и пост-URL. Конечно, он хранит их в автономном хранилище, и они доставляются, когда получатель возобновляет свой поток.

Есть ли способ настроить Jabber для вызова офлайн-сообщения ejabberd_c2s:fsm_next_state:2517 Waiting for resumption of stream for...?

PS: мы используем smack на стороне клиента, чтобы обеспечить управление потоком

1 ответ

Решение

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

Это просто не подходящее место для размещения вашей push-обработки.

Другие вопросы по тегам