socketjs( JavaScript + Flash ) = Comet ?
(ノ・・)ン。。。。。。(((●コロコロッ
追記:
こちらもどうぞ。
とりあえずこんなの↓を作った見た。
Real Time Chat
(鯖会社の撤去命令で閉鎖中)
右側に入力ボックスがあってそれに適当な文字を入力してEnterを押すと、
左側に文字が出てくるという至って簡単なもの。
ブラウザを複数立ち上げると、
別のクライアントIDが割り振られて、
投稿した内容が即座に表示されている。。。はず。
日本語が使えないとか、
動作が緩慢だとかはどうか許して欲しい。
実験なので改良する気はあまり無い。悪しからず。
AJAXは古い技術を集めたものとはいえ、
世間に革命的なインパクトを与えた。
ただ、AJAXの最大の欠点・・・
いや、AJAXの欠点と言うよりWebアプリのジレンマと言うべきか。
それがこれ。
リアルタイム性
例えばチャットやメッセンジャー。
これらをWebアプリで実装しようとしても、
どうしてもリアルタイムにならない。
「更新」ボタンを付けるかぐらいしか思いつかない。
仮想的にAJAX(またはiFrame)で1分に一回ぐらいクロールしてリアルタイムを実現できるかもしれないが、
完全なリアルタイムには絶対ならないし、
無駄なリクエストがほとんどを占めてしまう。
それを実現するのがCometの技術なのだが、
Cometの技術は今のところ
PHPの出番がない。
そのうちApacheがモジュールを出したりするだろうが、
workerモジュールが使えない
PHPにはやはり出番はなさそうだ。
そこで別の実装法としてServer-Sent Event(HTTP Stream)を試してみたが、
うまくいったのかこれ?って言う感じではある。
IEに至っては延々読み込みが止められなかった。
個人的なアプリならともかく実際のサービスに導入するのはできないだろう。
では手詰まり?
かと言えばそうでもなさそうだ。
その他の技術して
socketjsや
AFLAXといった
FlashとJavaScriptのコラボというのがある。
Flash Player5以降にXMLSocketというクラスライブラリが搭載されているのだが、
これがSocket通信を可能にする技術。
socket通信を使用してリアルタイム性を実現する方法だ。
そして各種イベント発生時にJavaScriptを発動させる仕組みになっている。
となれば、後はどうとでも出来るというわけだ。
(・υ・)``ホォー メカラウロコ
これによってブラウザ依存の無い、
リアルタイムAJAXが実現できる。
AFLAX(名前が生命保険会社っぽいな)はもっと総合的なものなのでもっと調査が必要。
今回はソケット通信に特化した
socketjsを使って簡単なチャットアプリを作ってみることにした。
サーバ側を
PHP、クライアント側がFlash+JavaScriptという構成。
まぁ、ただ、
PHPはやはりこの手のものに使わない方がいい気がしている。
実運用とかがあった時はC#とかで書こうかと。
=> Read more!