var channel = new goog.appengine.
Channel( [トークン] );
var socket = channel.open();作成したgoog.appengine.Channelの「open」メソッドを呼び出し、チャンネルをオープンします。これでチャンネルを使った通信が開始されます。返り値は、「goog.appengine.Socket」というオブジェクトになります。これはソケットを使った通信を管理するものです。
socket.onopen = 開いた時の処理;返されたgoog.appengine.Socketオブジェクトに用意されている各種のイベント用プロパティに関数を設定します。これらは不要ならば設定しなくてもかまいませんが、最低限、「onmessage」だけは必要となるでしょう。これがないと、サーバーからのメッセージを受け取れませんから。
socket.onmessage = メッセージを受け取った時の処理;
socket.onerror = 例外時の処理;
socket.onclose = 開放時の処理;
ChannelService channelService = ChannelServiceFactoryまずは、ChannelServiceFactory.getChannelServiceでChannelServiceインスタンスを取得します。これは同じですね。
.getChannelService();
String channelKey = request.getParameter("channelKey");続いて、クライアントからチャンネルキーを受け取ります。やはりchannelKeyというパラメータで送ってもらうことにして、これを取り出しておきます。同様に、クライアントから送られてくるメッセージなどがあれば受け取っておきます。ChannelMessage channelMsg = new ChannelMessage( [チャンネルキー] ,ChannelMessageは、チャンネルにメッセージを送信するために用意するインスタンスです。引数には、送信するチャンネルのチャンネルキーと、送るメッセージ(String)を指定します。
[メッセージ] );
channelService.sendMessage(channelMsg);ChannelServiceの「sendMessage」を使い、作成したChannelMessageインスタンスを送信します。これでサーバーからクライアントへの送信は完了です。
var xhr = new XMLHttpRequest();チャンネルを利用してサーバーに送信するのは、比較的簡単です。XMLHttpRequestを使い、普通のAjax通信と同じようにして送信するだけですから。ただし、チャンネルキーと、送信するメッセージをきちんとパラメータとして用意しておくのを忘れないようにします。
xhr.open('POST', パス + '?channelKey=' + [チャンネルキー] + '&message=' +[メッセージ],
true);
xhr.send();
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※クライアント側:チャンネルを開く
function openChannel() {
channel = new goog.appengine.Channel([トークン]);
socket = channel.open();
socket.onopen = onOpened; // 各イベント用の
socket.onmessage = onMessage; // 関数を設定する
socket.onerror = onError;
socket.onclose = onClose;
}
※クライアント側:メッセージの送信
var xhr = new XMLHttpRequest();
xhr.open('POST', パス + '?channelKey=' + [チャンネルキー] +
'&message=' + [メッセージ], true);
xhr.send();
※クライアント側:メッセージを受信
var onMessage= function(param) {
var 変数 = param.data;
……取得したメッセージを処理する……
};
※サーバー側:メッセージの送信
ChannelService channelService = ChannelServiceFactory
.getChannelService();
String channelKey = request.getParameter("channelKey");
String message = request.getParameter("message");
channelService.sendMessage(new ChannelMessage(channelKey,
[送信するメッセージ] ));
| << 前へ | 次へ >> |