私は自分のiOSとAndroidアプリでXMPPを使ってチャットシステムを統合しています。私はサーバー側でejabberd 2を使用しました。チャットシステムは正常に動作します。私はAPNSとGCMを使用して私のチャットにプッシュ通知を統合したい。各チャットメッセージでプッシュ通知を送信するにはどうすればよいですか? ejabberd 2には、この機能を実装するためのAPIまたは拡張機能がありますか?ejabberdとプッシュ通知
ヘルプは
私は自分のiOSとAndroidアプリでXMPPを使ってチャットシステムを統合しています。私はサーバー側でejabberd 2を使用しました。チャットシステムは正常に動作します。私はAPNSとGCMを使用して私のチャットにプッシュ通知を統合したい。各チャットメッセージでプッシュ通知を送信するにはどうすればよいですか? ejabberd 2には、この機能を実装するためのAPIまたは拡張機能がありますか?ejabberdとプッシュ通知
ヘルプは
以下のブログを使用してください、それは非常にシンプルで便利です、それは私のためにうまく動作します。
http://symmetricinfinity.com/2013/01/23/ios-push-notifications-from-ejabberd.html
のAPNやGCMにはejabberdプラグインはありません、非常にかなりのです。
与えられたURLにPOST
要求を送信しますmod_offline_post
モジュールを使用してください:私はあなたがここでは2つの主要なオプションを持っていると思います。その後、既存のバックエンド言語を使ってapnsとgcmの両方を処理することができます(私はバックエンドとしてレールを使用していますので、これを扱うのはもう1つだけです)。
mod_offline_post
に基づいて、POST
リクエストの代わりにプッシュ通知を送信する独自のモジュールを作成します。 apnsとgcmを実装する例とライブラリはほとんどありません。私。 apnsの場合はapns4erl、gcmの場合はthis codeです。しかし、それはもちろん、いくつかのエルランを知っていると良いでしょう。
AFAIK GCMまたはAPNへのインターフェイスを提供するパブリックejabberdモジュールはありません。
ejabberd_hookのカスタムモジュールを実装することをお勧めします。 ejabberd内部モジュールと存在フックhereの例を見ることができます。
あなたがオフラインのユーザーにメッセージを転送したい場合は、私は私が(this stackoverflowの質問を参照)filter_packet({From, To, Packet})
を提案し、パケットの種類を確認するメッセージの一般的なフィルタリングのためoffline_message_hook
しばらくお勧めします。
受信者は、デバイストークン/登録IDをdbから取得し、いくつかのerlangコードを使用してメッセージを転送することができます。
APNについては、をご覧ください。これはどのように動作するのか、このerlang ex_apnsに説明されています。あなたがAPNのモックサーバーを望むかどうかの詳細については、このブログpostをご覧ください。
GCMの例として、@ Lucasが提供するサンプルリンクを使用できます。
dbからデバイストークンを取得するにはどうすればよいですか? –
これは、トークンをどのように格納するか、またどのデータベースに依存するかによってまったく異なります。 – user601836
どのようにAndroidのオフラインユーザーにプッシュしていますか? –
AndroidクライアントからFCM設定パラメータをeJabberDに送信するにはどうすればよいですか?私はSmack SDKのクライアント側を使用しています。任意の提案@MickaëlRémond、vks – CoDe