私はいくつかのサービス(myService.svc、wsdlファイルから「新しいサービス参照の追加」を使用して生成)をホストする青空クラウドサービスプロジェクトを持っています。Azureの簡単な実装websocket
これはうまく動作し、処理が非常に簡単です。サービス宣言の
例:
<service behaviorConfiguration="myBehaviour" name="myService">
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<endpoint address="" behaviorConfiguration="" binding="wsHttpBinding" bindingConfiguration="CentralSystemServiceSoap" contract="CentralSystemService" />
</service>
[System.ServiceModel.ServiceContractAttribute("CentralSystemService")]
public interface CentralSystemService
{
}
しかし、私のデバイスのいくつかは今JSONを使ってWebSocketをプロトコルが必要です。
ウェブソケットのしくみについてたくさん読んできましたが、複雑すぎるように見える多くの異なる実装が見つかりましたが、主に完全に異なっていました。私は、WCFサービスに近い実装を探しました。しかし、すべての例は、例えば、ハンドシェイク部分を含んでいませんでした。
私のプロジェクトはazure(クラウドサービスインスタンス)に公開されています。以前のすべてのSVCはまだ動作している必要があります。
同じプロジェクト内にすべてを保持し、同じWebサイトのJSONサービスを作成できますか? 私が見つけた例のほとんどは、サーバーのリスナーを開くためのメイン関数を含んでいたため、私はクラウドプロジェクトでスタートアップのメインメソッドを設定できませんでした。
どのような実装をお勧めしますか?
は結合NetHttpBindingを使用している場合、我々はコールバック契約でWebSocketを介してWCFサービスとクライアント間で通信することができ、
ありがとうございます!しかし、私はクライアントにアクセスすることはできません、クライアントは私がそれと通信する必要があるデバイスです。 +あなたのコード/リンクでハンドシェイク部分がどのように動作するのか分かりません。 – user2088807
データ転送をさらに制御する必要がある場合は、[SuperSocket](http://supersocket.net/)という名前の.NETライブラリを使用してwebsocketサーバーを作成することをお勧めします。 JSONのサポートが組み込まれており、Windowsサービス、コンソールアプリケーション、Webサイトなどの複数のホスティング環境をサポートしています。 – Amor