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-обработки.