AeroGear SimplePushサーバと連携するデモアプリケーション。
SimplePushサーバからのPush通知を契機にメッセージをAPサーバから取得し、デスクトップ通知を表示します。
- GlassFish4を使用。
- SimplePushサーバに通知を依頼するのが役割。
- AeroGear SimplePushを使用。デフォルトでポート7777でサービスを提供する独立したサーバ。
- 事前に通知対象のクライアントを登録し、APサーバからの依頼に応じて通知を行うのが役割。
- デスクトップ通知を表示するためにwebkitNotificationsを使用しているため、Google Chromeを使用してください。
GlassFish4はここからダウンロードできます。インストールは非常にシンプルで、任意のディレクトリにunzipして展開するだけです。
unzip glassfish-4.0.zip
Apache Mavenを使ってビルドし、WARを生成します。
git clone https://github.com/n-agetsu/PushNotificationDemo.git PushNotificationDemo
cd PushNotificationDemo
mvn package
argetディレクトリ配下にPushNotificationDemo.warが生成されたらビルドは完了です。
AeroGear SimplePushサーバはGitHubでコードが公開されています。以下の手順で取得してビルドしてください。ビルドにはApache Mavenが必要なので、事前にインストールしてください。
git cllone https://github.com/aerogear/aerogear-simplepush-server.git aerogear-simplepush-server
cd aerogear-simplepush-server
mvn install -DskipTests=true
AeroGear SimplePushサーバはノンブロッキングIOを実現するサーバを元に動作しており、NettyベースとVERT.xベースの2つの実装があります。デモではNettyベースのものを使用します。以下のコマンドで起動します。
cd server-netty
mvn exec:java -Dexec.args="-host=localhost -port=7777 -tls=false -ack_interval=10000 -useragent_reaper_timeout=60000 -token_key=yourRandomToken"
上記の設定ではバインド先のアドレスをlocalhostとしているため、同じマシンからしかSimplePushサーバにアクセスできません。複数の端末からアクセスさせたい場合は、-hostの設定を自端末のIPアドレスに変更してください。なんとこれだけで、SimplePushサーバのセットアップは終わりです。
GlassFishの管理コンソール http://localhost:4848 にアクセスしてアプリケーションをデプロイします。その前に、先ほどインストールしたGlassFishを起動してください。
cd glassfish4/bin
./asadmin start-domain
起動後に http://localhost:4848 にアクセスすると、しばらくして以下の画面が表示されます。
画面中央付近の『Deploy an Application』を選択して、先ほどビルドしたPushNotificationDemo.warをデプロイしてください。
Google Chromeからhttp://localhost:8080/PushNotificationDemo/にアクセスして以下のような画面が表示されたら、SimplePushサーバは正常に起動し、アプリケーションも正常にデプロイされています。
次にhttp://localhost:8080/PushNotificationDemo/message.htmlアクセスして、プッシュ通知を契機に取得させたメッセージを入力します。
以下のように、Dukeからメッセージが表示されたらデモは成功です。
前述したように、SimplePushサーバのバインドIPアドレス(-host)を設定することで、複数人に対してメッセージ通知することもできます。是非遊んでみてください。