1

複数のクライアントと単一のサーバーで構成される一連のプログラムを構築しています。

クライアントは頻繁にデータの小さなパケットをサーバーにプッシュします。サーバーは情報を検証し (データが無効な場合はエラーを返します)、受信した情報を処理します。この情報は、クライアントがサブスクライブするイベントの発火を引き起こす可能性があり、クライアントは即座に (または可能な限り近い) 通知を受けることができます (少量のデータと共に)。

これを行う方法についていくつかのアイデアがありますが、主に永遠に時間がかかり、おそらくいくつかのエラーを犯す可能性があるため、独自のプロトコルを作成することは避けようとしています. そのため、そのような機能を提供するシステムに実装できる既存のプロトコルがあるかどうか疑問に思っていました。

クライアントの数は最初は非常に少なくなりますが、時間の経過とともに増加し、数千のクライアント (独自のサブスクリプションを持つ) と、いくつかのフロント エンド サーバー (それぞれがサブスクリプションのサブセットを処理する) が含まれる可能性があります。機能を向上させるためのバックエンド サーバー。

したがって、これらの要件と機能を実装する既存のプロトコルを知っている人がいれば、それは素晴らしいことです。

編集

私は現在、XMPP プロトコルと JXTA プロトコル スイート (参照用であり、別の言語で実装) を調べています。どちらも非常に優れているようで、必要な接続を提供しますが、自分の環境でそれぞれをテストする機会がなく、また、私が試みていることに適しているかどうかさえもテストできませんでした.

さらに、一部のネットワーク クライアントはローカル ネットワークの外部にあり、WAN 経由で動作します。セキュリティはそれほど問題ではありませんが、これによる遅延の増加と、特定のポートまたはトランスポート プロトコル (I一部の ISP は UDP パケットをブロックしているというテキストを読んだことがありますが、これがどこまで広がるかはわかりません.自宅、オフィス、携帯電話、友人の家などで行うことができますが、まだ自分で経験したことはありません)。

4

1 に答える 1

1

以下があなたの求めているものと正確に一致しない場合は申し訳ありませんが、「プロトコル」という言葉の使用に少し混乱しています. プロトコルは「通信仕様」のみであり、実装は完全にあなたに任されていると理解しています。その場合、私はいつも次のリンクのグラフィックが役に立つと思います。

一方、アプリケーションのネットワーク側を簡単に実装して時間を節約できるソリューションを探している場合は、独自のカスタム プロトコルを実装する次のネットワーク ライブラリを確認してください。

  1. NetworkComms.Net
  2. リドグレン
  3. ゼロMQ

免責事項: 私は NetworkComms.Net の開発者です。

于 2013-06-13T11:08:28.667 に答える