siteあるプログラマの勉強部屋。APIを使ったサービスをつくってみたので、技術的なことを記録しておこうと思います。私が書くのはPythonの方です。一般公開はされていませんが、SDKでは動作します。APIの実装が違うようで、SDKだとばんばんポーリングしてるように見えますが気にしなくてもよさそう。GAEの環境にデプロイするとロングポーリングみたいになります。Codeコードは?簡単です。サーバー側とクライアント側で対になるclient_idとtokenが必要になります。client_idは任意の文字列です。clientごとに一意になるようにします。私はuuidで作成しました。JavaScript側で作成しても良いと思います。create_channel関数にclient_idを渡すことで、tokenを取得できます。channel.create_channel(client_id)tokenは、ブラウザに渡してjavascriptで使用します。client_idはサーバーで保持しておかなければなりません。SeatNextではmemcacheを使って保持しています。クライアントを識別する場合には、tokenとclient_idを関連付けて保持します。サーバ側からプッシュメッセージを送る際には、先程のclient_idを使って、文字列messageを送信できます。message)複数のクライアントに配信する場合は、保持していたclient_idを使って繰り返しsend_messageをします。API用のJavaScriptファイルを読み込んでおく必要があります。src="/_ah/channel/jsapi"></script>JavaScriptのコードではまずChannelオブジェクトを生成します。生成するときにサーバー側で生成したtokenを引数に使用します。console.log(message);};Channelはサーバーからのプッシュを受信するだけに使用します。このChannelから送信することは出来ません。その代わりにAjaxで送信します。おくってきたクライアントを識別する必要がある場合は、tokenを一緒に送信する必要があります。したときには、サーバー側でtokenとclient_idの両方を関連付けて持ってないといけないです。SeatNextでは、クライアントの編集操作をAjaxでサーバーに送信し、それを今度は同じ座席表を見ているクライアントにプッシュで配信して同じ操作を再現しています。Testerに招待される必要があります。Testerになる方法は正式な方法はよく分かりませんが、リクエストフォームみたいなのがどこかにあったと思います。Daysの時にお会いしたGAE開発者の方にメールして申請理由などのやりとりをしたら招待していただけました。APIが正式サービスになりました!当初書いた記事と用語が大きく変わっていたので修正しました。他にも考慮すべき点はいくつかありますが、一番のコアになる部分について記述しました。コメントをキャンセルメールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。コメントデータの処理方法の詳細はこちらをご覧ください。@civicガジェット好きなソフトウェアプログラマー。SeatNextなどを開発しました。