しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

非同期コントローラと Comet

前から相性は良いんじゃないだろうかと思ってたので、ついついこんな時間まで起きて簡単なチャットアプリを書いてしまいました。

で、書いたのですが C# コードより JS コードのが多いんじゃね?というぐらいコンパクトに書けました。今度ソース出すかもしれない。

追記

とりあえず考え方だけ。

ASP.NET MVC 2 の非同期コントローラは OutstandingOperation カウンタの値が 0 になるかタイムアウトになるまではレスポンスを返しません。この時点で Comet に使えそうだと思ったわけです。

この方法は Jetty の Suspend-Resume に近い感じなので、この Kenn さんの Lingr の記事が参考になります。

Lingr and Comet - 技術解説編:Kenn's Clairvoyance - CNET Japan

今回、Notify のために NSNotificationCenter のようなものを作って実現しました。Cocoa MVC の考え方は非常に興味深いです。