Я разрабатываю приложение для чата для Android, используя ejabberd в качестве сервера XMPP. Я хочу отправить push-уведомление GCM, когда пользователь не в сети. Для этого я создаю новый модуль в ejabberd, зарегистрированный offline_message_hook, но эта функция вызывается только тогда, когда кто-то начинает печатать и заканчивает печатать. Ниже приведены единственные пакеты, переданные на этот хук. Хотя пользователь получает сообщение, когда он / она выходит в сеть.
Packet: {xmlelement,
"message",
[{"type",
"chat"},
{"id",
"purple7d4d0773"},
{"to",
"xxx@rakshith"}],
[{xmlelement,
"paused",
[{"xmlns",
"http://jabber.org/protocol/chatstates"}],
[]}]}
Packet: {xmlelement,
"message",
[{"type",
"chat"},
{"id",
"purple7d4d0773"},
{"to",
"xxx@rakshith"}],
[{xmlelement,
"composing",
[{"xmlns",
"http://jabber.org/protocol/chatstates"}],
[]}]}