5

行き詰まったので、誰かが私を導いてくれることを願っています...ワークステーションに緊急事態を通知し、ユーザーの画面の下部に小さなメッセージをポップアップ表示する緊急ブロードキャスト システムを作成する必要があります。これは簡単に思えますが、複数のサブネット上に約 4000 台のワークステーションがあります。システムはほぼリアルタイムで、軽量で、Windows サービスとして簡単に展開できる必要があります。

この問題は、ルーターが UDP ブロードキャスト パケット xxx255 を転送しないことを発見したときに始まりました。後で、ネット送信メッセージをキャッチするためにVB6で簡単なテストフックを作成しましたが、それらでさえルーターを通過しませんでした。また、パケットをフィルタリングして、ネットワーク パケットが目的の宛先に到達していないことを検出する単純なパケット スニファも作成しました。

次に、HTTP 経由で MSMQ を使用して調べてみましたが、これには IIS がターゲット ワークステーションにインストールされている必要がありました。非常に多くのワークステーションがあるため、セキュリティ上の大きな問題になります。

現在、サブスクライバーにイベントを送信する非同期コールバックを使用して Web サービスを完成させました。小規模では完全に機能しますが、サブスクライバーが 15 を超えると、パフォーマンスが大幅に低下します。サーバーのポーリングは、サーバーに負荷がかかるため、実際にはオプションではありません (さらに、私も試しました)。

どのテクノロジーを使用するかについて、あなたの助けが必要です。非常に多くのクライアントでコメットの方法を使用した人がいますか、それとも WCF を見る必要がありますか?

Visual C# 2005 を使用しています。この苦境から抜け出すのを手伝ってください。

ありがとう

4

5 に答える 5

3

これはまさにマルチキャストが設計された目的です。

通常のネットワークブロードキャスト(定義上)はローカルサブネットにとどまり、ルーターを介して転送されません。

一方、マルチキャスト送信は、サブネットローカルから、サイトローカル、さらにはグローバルに至るまで、さまざまなスコープを持つことができます。必要なのは、サブネットを相互に接続するさまざまなルーターがマルチキャストに対応することだけです。

于 2008-12-18T15:50:43.357 に答える
3

WCFコールバックメカニズムとイベントの使用を検討してください。ジュヴァル・ローウィによる 良い紹介があります。

もう1つのパターンは、Webサービス呼び出しのブロックを実装することです。たとえば、Gmailチャットはこのように機能します。ただし、ここでセッションとタイムアウトを処理する必要があります。クライアントがNATとファイアウォールの背後にあり、直接到達できない場合に機能します。ただし、イントラネット内の単純なアラートには複雑すぎる可能性があります。

于 2008-12-18T09:58:58.870 に答える
0

サブネット内のすべてのクライアントにメッセージを配信する役割を担うスレーブ サーバーを各サブネットに配置できますか?

次に、メッセージが開始される中央サーバーに接続されたスレーブのみを持つことができます。

于 2008-12-18T09:19:12.880 に答える
0

この問題は、ソケットで最もよく解決されると思います。

サーバーへの接続を開き、開いたままにします。

于 2008-12-18T09:03:29.073 に答える