MVC 3にアプリケーションがあり、それにWebSocket(Cometへのフォールバック付き)を追加したいと考えています。
少し調べてみたところ、Cometの部分は非常に単純で、自分でやりたいと思っています。これらの長寿命のajaxリクエストを処理するために必要なのは、AsyncControllersとかなり単純なjsだけです。
さて、WebSocketの場合、物事が汚れ始めます。いくつかのライブラリを調べましたが、ほとんどの場合、独自のWebサーバー(したがって、別のホストまたはポートが必要)をセットアップし、そこでwsプロトコル要求をリッスンしているようです。これは、たとえばSuperWebSocketの場合です。これは、最初は問題ないように見えましたが、この「私はWebサーバーです」という問題がありました(もちろん、これはまったく問題ありませんが、避けたいと思います)。
それから「PingIt」かそのようなものを見ました、私は今リンクを見つけることができません..、しかし私は別のコンピュータにソースを持っています。これはmvcのエンドポイントで実行されますが、IDisposableオブジェクトを取得し、リフレクターを介してクライアントでレンダリングされるjavascriptピースを作成するなど、処理方法があまり好きではありませんでした。これは非常に汚染されています。彼らのライブラリの名前は、私が本当に興味を持っていないことに加えて、私が望むものに反して多くのライブラリがスローされているように感じました。これは、ページをどのようにレンダリングするかについての私の見解に反します(特に今私はMVCに取り組んでいます。これは、クリーンで目立たないhtmlページをコーディングできることを意味します)。
基本的に私が欲しいのは、エンドポイントを次のようにすることです。
domain.com/rt/comet
domain.com/rt/socket
それよりも
domain.com/rt/comet
domain.com:81/
つまり、どこかにtcplistenerを設定するのではなく、asp.net MVCアプリケーションのコントローラー内のエンドポイントでWebSocket接続を受信する(そしてハンドシェイクや必要な処理を行う)ことは可能ですか?
これは、コメットコードをWebSocketコードに少し近づけるのにも役立ちます
私はコメット/WebSocket全体に真剣に慣れていないので、プロトコルについてはあまり(またはまったく)知りません。コメットを機能させる方法は理解していますが、WebSocketではそれほど多くはありません。その要点を理解するための基本を読んで理解しました。
また:私が求めているものがかなり離れているかどうか私に知らせてください