XMPP サーバーとして ejabberd を使用して、Android 用のチャット アプリケーションを開発しています。ユーザーがオフラインのときに 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"}],
[]}]}