Silverlightクライアントとの通信に使用している既存のWCFサービスがあるため、NetTCPバインディングで使用しています。この同じサービスをJavaScriptクライアントで使い始めたいのですが、理想的にはサービスの変更をできるだけ少なくします(つまり、SilverlightクライアントとJSクライアントが同じデュプレックスサービスを呼び出せるようにします)。理想的には、これは、Cometのようなハックではなく、WebSocketのような適度にパフォーマンスが高くスケーラブルな技術によって発生します。
これを行うための最良の方法は何ですか?
WebSocketサポートを(NetHttpBindingを介して)サービスに追加することは、それを行うための1つの明白な方法のように思えますが、JavaScriptから結果のサービスを呼び出す方法に関するドキュメントはないようです。デフォルトのバイナリトランスポートの代わりにテキストベースのトランスポートを使用するように構成し、JavaScriptベースのSOAPクライアント(おそらくWSDL2JSを使用)を一緒にハックして呼び出すことができると思います。それはうまくいくはずのように感じますが、かなり厄介であり、十分に文書化されていないミックスのいくつかの部分があります。
XSocketsやSuperWebSocketなどのフレームワークでサービスを再実装することもできますが、それは実際の作業であり、WCF実装との同期を維持することはその上にあります。
他に何か考えはありますか?