0

私はプロジェクトの計画の初期段階にあります。自分のプロトコルを実装する必要のない、これを行う従来の/簡単な方法を知りたいです。

私はRPCの概念を知っています-クライアントによって呼び出すことができる特定のプロシージャを公開するサーバーを持っています。ええと、私にはたくさんのクライアントがいますが、残念ながら直接接続することはできません(NAT /ファイアウォールの問題。ほとんどが家庭用PCです)。そこで、クライアントをサーバーに直接接続して、「Pollforoperation」メソッドを呼び出すことを考えていました。これは「後方RPC」だと思います。つまり、このメソッドが実行するのは、サーバーが何かを実行する必要があると判断するまでブロックし(これには数秒または数日かかる場合があります)、実行する必要があることを示すデータのフラグメントを返し、実際に適切なコードを呼び出すだけです。クライアントとそれをサーバーに返します。3つのステップに注意してください。

  1. クライアントはサーバーをポーリングします。潜在的に長い時間待ちます。
  2. サーバーは、シリアル化された形式でいくつかの操作を返します。例:「ファイルを送って」
  3. クライアントは操作を実行し、サーバーにこれを送信します

したがって、HTTPには要求と応答しかないため、HTTPを介したものを使用してこれを実際に行う方法がわかりません。GET(ステップ1と2)とPOST(ステップ3)を使用してこれを行うことができると思いますが、サーバー側での多くの簿記(リクエストごとのCookieまたは何かなど)。

これを行うためのクロスプラットフォームの方法を探しています。クライアントはC#になりますが、サーバーについてはまだ決心していません。これがHTTP経由で行われるかどうかは関係ないので、「Webサービス」が適用できる場合とできない場合があります。

私の説明に合うプロトコル/コンベンションに関するアイデアはありますか?私を正しい方向に向けてもらえますか?

4

1 に答える 1

1

双方向通信を確立したい場合や、NAT /ファイアウォールなどをナビゲートできるようにしたい場合は、WebSocketに興味があるようです。

于 2013-03-07T18:43:59.830 に答える