カテゴリー
未分類

Google App Engine Channel API の接続・切断・メッセージ送信

接続・切断については以前もブログに書いたように

接続 : /_ah/channel/connected/
切断 : /_ah/channel/disconnected/

にPOSTリクエストが送信されるのでそこにサーブレッドを設置しておけばいい。

ユーザーIDは

ChannelService channelService = ChannelServiceFactory.getChannelService();
ChannelPresence presence = channelService.parsePresence(HttpServletRequest);
String clientId = presence.clientId();

で取得できる。

 

さて、サーバからクライアントへのメッセージ送信はChannelServiceのsendMessageで行える。

逆にクライアントからサーバへ送信する機能は用意されていないのだろうか。

Google App Engine (Java)のJavadocのChannelServiceを読んでいたところ、ChannelServiceにはparsePresenceメソッド以外にもparseMessageがあることを知った。

接続・切断それぞれに設置されているサーブレッドのリクエストをこのメソッドに入れても、メッセージを作成できずに例外エラーが発生する。

Google App Engine Channel API JavaScript Referenceを読んでも送信に使いそうなメソッドは存在しない。

(function(){
    var channel = new goog.appengine.Channel(TOKEN);
    window.socket = channel.open();
    window.socket.userId = USERID;
})();

このようなスクリプトを使ってSocketオブジェクトをwindow.socketに格納して、Google Chromeの開発者ツールのコンソールからオブジェクトを参照したところ候補にsendメソッドがあった。

無題

そして使ってみると以下のような警告が表示された。

image

警告: No file found for: /_ah/channel/receive

というわけで/_ah/channel/receiveにサーブレッドを配置したところ、そこでメッセージを受信していることが確認できた。

そしてHttpRequestをparseMessageに渡してChannelMessageを作成することができた。

ChannelService channelService = ChannelServiceFactory.getChannelService();
ChannelMessage channelMessage = channelService.parseMessage(HttpServletRequest);
String fromClientId = channelMessage.clientId();
String message = channelMessage.getMessage();

上記のコードで発信者ユーザIDとメッセージを取得することができた。

しかし、デプロイしたところまだ動作しないようです。

 

今のところ、代替策はサーバーはクライアント接続時にTokenをキーにIDをキャッシュしておき、クライアントはメッセージ送信の際にTokenを送らせるぐらいでしょうか。

早く正式に提供してほしい機能ですね。

あと、ChannelPresenceとChannelMessageにどのページに作られたChannelなのかを取得するメソッドがほしいですね。

カテゴリー
未分類

Vaio Type Yを購入

11.6インチサイズの安価なモバイルノートを開発用に探していたところAtomやAMD E450など、性能の十分なものが見つからなかった。

そんな時、ビックカメラに行ったらVaioのキャンペーンをやっていてついVaio Type Yを購入してしまった。

キャンペーンでは

Docomo加入で5,2500円値引き
Sony Store登録で3,000円値引き

というもので、最大55,500円の値引きとなる。

VAIOオーナーメイドモデルで構成を最低まで下げると3.8万ほどでIntel Celeron U3600のものが購入できる。

基本スペックは

CPU : Intel Celeron U3600
Memory : 2G*1
HDD : 320GByte 5400rpm
バッテリー: 標準 約6時間稼動

今回はカスタマイズで

CPU : Intel Core i5 470UM
バッテリー : Lバッテリー 約11時間稼動
保障 : 3年ワイド

にした。

この段階での価格は58,800円。

後に

SSD : Crucial M4 128G 12,980円
Memory : UMAX DDR3 8GByte(4GByte*2) 3,270円

を購入。

これキャンペーンの割引なしでは合計70,050円。

ちなみにSSDとMemoryをオーナーメイドで上記等同等にカスタマイズすると合計は124,800円。

70,050円からキャンペーンで55,500円を引くと14,550円。

Docomoは2年間縛り必須だったので基本料金の月1,000*24円+契約手数料3,000円=27,000円。

本体代とDocomoの料金の合計は41,550円。

11.6インチでこの価格でこの性能なら結構良いかな。

 

ベンチマーク等々は以下

 

cpu-zcpu-z_memory

windows experience index

crystaldiskmark

crystalmark

カテゴリー
未分類

ニコニコ動画埋め込みプレイヤー用ライブラリ

実はニコニコ動画の埋め込みプレイヤーも実はJavaScriptから操作できる。

という訳で今回は埋め込みプレイヤーをより簡単に使えるようにするためのライブラリを作った。

リピート機能やイベントリスナーのセットをサポートしている。

 

詳細はこちら http://axe1lyze-lab.appspot.com/nicovideo/#lib_externalplayer