2

SignalR クロス ドメインに関する質問です。.NET アプリケーションには次のレイヤーがあります。

  • データ
  • ダル
  • サービス (WCF を使用)
  • ClientWeb1 (cw1)
  • ClientWeb2 (cw2)

サービス層の理由は、cw1/cw2 上の SignalR ハブ間の仲介者として機能することです。

cw1 であるという目標は、ある種の更新メッセージをコントローラーに送信し、これにより cw1 のハブが更新され、それがすべての cw1 にブロードキャストされます (標準のシグナル機能)。

また、cw2 クライアントも cw1 からの更新を認識できるように、cw1 のコントローラーがサービス層に追加のメッセージを送信する必要があります。この時点で、サービス層が cw2 のハブを呼び出し、cw1 の最初のメッセージに基づいてすべての cw2 のクライアントにメッセージを送信できるようにしたいと考えています。

私の質問は次のとおりです。外部サービス層から cw1 または cw2 のハブにアクセスするにはどうすればよいですか? これは可能ですか?そうだと思いますが、非推奨の SignalR 関数が多数あるため、最良の答えを見つけることができないようです。

4

3 に答える 3

2

回答ありがとうございます。次の手順を実行することで、最終的にこれを回避しました。

WCF サービスを取り除く。

仮想ディレクトリに別の Web プロジェクトをセットアップすると、これがハブを保持する場所になります。

次に、クライアント側のスクリプト参照を変更して、他の 2 つの Web プロジェクトの SignalR クライアントをこれに向けました。

<script src="Scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.signalR.min.js" type="text/javascript"></script>
<script src="http://localhost/MyThirdVirtualDirWebProj/signalr/hubs" type="text/javascript"></script>

その後、3 番目の「仲介者」プロジェクトのハブとの間でメッセージを送受信できます。おそらく上記のように XSockets を使用して、これを行うためのより良い方法がありますが、これはかなりうまく機能するようです。

于 2013-01-19T19:53:42.287 に答える
2

私の知る限り、これは不可能です。ハブと通信できるようにするには、パブリック API を介してメッセージを送信するか、ブロードキャストできる同じ ASP.NET インスタンスでハブの隣にある別のプライベート API (この場合は WCF サービス) が必要ですメッセージ自体を使用するGlobalHost.ConnectionManager.GetHubContext<MyHub>()か、問題をより明確に分離するために、WCF サービスを「SignalRness」から完全に分離する共有内部インターフェイスを使用します。

別のサービスの後者のアプローチを使用することをお勧めします。これは、懸念事項をより適切に分離することは別として、パブリック API を介してメッセージを送信することは、ハブに接続しているすべての人が、自分が何であるかがわかれば同じメッセージを送信できることを意味するためです。 . それか、特定のハブメソッドに対して異なるレベルのセキュリティチェックを導入/使用して、特定の呼び出し元のみがそれらを呼び出す権利を持っていることを確認する必要があります。

于 2013-01-15T18:48:47.253 に答える
1

SignalR を使用する方法はわかりませんが、XSockets.NET を使用すると簡単です。

https://github.com/codeplanner/XSocketsWCF/blob/master/src/XSocketsWCF/XSocketsWCF/WCF/Service/RoomService.cs

リンクは Websocket サーバーに接続された WCF へのリンクですが、プロジェクトをダウンロードできます... すべてそこにあります。

もう 1 つの (いくつかの) 利点は、XSockets がクラスター化されたサーバー フォーム 3.0 を提供するため、サーバー 1 のメッセージがサーバー 2 に到着する (およびその逆) ため、WCF 部分は必要ありません。

3.0 リリースについて: http://xsockets.net/blog/sneak-peek-at-the-30-features

よろしくウッフェ

于 2013-01-16T14:10:19.170 に答える