著作一覧 |
一日遅れになってしまいましたが、『CometとAjaxを利用したチャットサーバの実装』をCodeZineに寄稿しました。
前回(いつのことだとかのツッコミはなしということで)の『NIOを使ったHTTPサーバ』をちょっと変えてCometを扱えるようにして、prototype.jsを使ってチャットです。
5日ほど前、本屋さんで日経ソフトウェアを立ち読みしてたら結城さんが同じ題材でCometをJavaで実装していて眩暈がするほど衝撃を受けましたが(競作になるとはね)、そのくらいCometはホットで、かつリファクタリングと言えばStack、ペアプロと言えばStack、最初のプログラミングと言えばハローワールド、値オブジェクトと言えばMoney、AOPと言えばログ、Cometと言えばチャットということなんでしょう。
:参考資料が漢だよね。実際、参考にさせてもらったんだけど、タイトルを書くのは気恥ずかしかったよ(←妙な自意識が過剰にあるらしい)。
追記:今、見たら画像用にJudeで作ったファイル(シーケンス図の固まり)がダウンロード対象になってる。気付かずにpng出力したのと一緒に送ってしまったのか。もし内容を参照したい場合には(内容はページに貼られているシーケンス図の原画です)UML Modeling Tool - JUDE -から、Communityエディションをどうぞ。僕は起動速度、実行速度、使いやすさでJudeが好きです(Communityエディションは無料だから好きなんだろうと思うかも知れないけど、必要なツールは購入しているわけで―VisioとかGraffleとか―それらも利用できる環境にいるけれど、Judeを使っているということです)。
なんと、とマッケターはぶったまげた。
みなさんは、その米百俵で学校を建てるですと。それだけでビジネスの難易度が上がりますぞ。しかもその学校とやらには士族の子弟だけではなく、学力さえあれば庶民の子供とやらも通うのですと。ぎょぎょぎょ。もう全くどこに勝算を見出そうとしているのか分からないんです。すみません、すみません。
ということか。
ジェズイットを見習え |
『CometとAjaxを利用したチャットサーバの実装』面白いですね。Cometだクライアントがサーバにコネクションを張りっぱなし。というかサーバに送るべきデータが出現するまでレスポンスを返さないって解釈でいいのでしょうか。で普通のサーバでやるとリソースが大変なことになりそうなので,サーバ側でも継続使ったりして工夫すると。
継続の意味が実はいまいちわからないのですが(高井さんの説明が悪いというわけではないとは思うけど)、本来はリソースはF5攻撃や高頻度のAjaxによるポーリングよりは少なくて済みます。<br>2点あって、1つはパーシステントコネクションの利用可否で(CodeZineの実装では否にしてる。対してF5攻撃では可なのでサーバ負荷はシステムとしては低くアプリケーションとしては高いからさらに内部で2点以上ある)、もう1つはネットワーク上のトラフィックです(こちらはCometが有利なのはおわかりと思います)。<br>XHRの実装がこなれてきて前者の問題が解決すれば、後者の面からリソースは大変なことにはならないのではないかと思います。(もっともselectする数が増えるのでaioのような仕組みも必要になったり結局サーバー側もいろいろ考えなきゃならないことはありそうですね)<br>#と書いたけどなんか見落としている点もありそうです。