gwt-gae-channelライブラリを使う
gwt-gae-channelプロジェクトというのがありますので、これを使いました。まだバージョン0.3αですがいちおう動くようです。なお、gwt.xmlファイルへの記述は、
- <inherits name='com.google.gwt.appengine.channel.Channel' />
Tokenの入手
これは、前回の記事を参考にして、まずはTokenを入手してください。入手方法はお好きなように、、、まあ、GWTユーザならGWT-RPCを使うのが普通でしょう。
Channelの接続
ここで、gwt-gae-channelのライブラリを使います。以下のような記述でOK。
ChannelFactory.createChannel(token, new ChannelCreatedCallback() { @Override public void onChannelCreated(Channel channel) { channel.open(new SocketListener() { @Override public void onOpen() { Window.alert("Channel opened!"); } @Override public void onMessage(String message) { Window.alert("Received: " + message); } @Override public void onError(SocketError error) { Window.alert("Error: " + error.getDescription()); } @Override public void onClose() { Window.alert("Channel closed!"); } }); } });この記述は、Tokenを入手した直後にするのが無難でしょう。接続が確立すると、onOpenメソッドが反応します。この処理を終えることで、サーバとのcomet接続が維持されます。
Pushの呼び出し
上記の処理が終えた後、サーバー側でpushをする処理(前日の記事を参照)を実行させれば、上記のonMessageが反応します。push処理の呼び出し方は、サーブレットでもいいし、GWT-RPCでもいいです。
正直、なんでこれでpushされてくるのかイマイチがところはあります(笑)。サンプルとか殆どないのでわかりにくいですが、cometのことがわかっていれば理解可能だと思います。
0 件のコメント:
コメントを投稿