私はプロジェクトの計画の初期段階にあります。自分のプロトコルを実装する必要のない、これを行う従来の/簡単な方法を知りたいです。
私はRPCの概念を知っています-クライアントによって呼び出すことができる特定のプロシージャを公開するサーバーを持っています。ええと、私にはたくさんのクライアントがいますが、残念ながら直接接続することはできません(NAT /ファイアウォールの問題。ほとんどが家庭用PCです)。そこで、クライアントをサーバーに直接接続して、「Pollforoperation」メソッドを呼び出すことを考えていました。これは「後方RPC」だと思います。つまり、このメソッドが実行するのは、サーバーが何かを実行する必要があると判断するまでブロックし(これには数秒または数日かかる場合があります)、実行する必要があることを示すデータのフラグメントを返し、実際に適切なコードを呼び出すだけです。クライアントとそれをサーバーに返します。3つのステップに注意してください。
- クライアントはサーバーをポーリングします。潜在的に長い時間待ちます。
- サーバーは、シリアル化された形式でいくつかの操作を返します。例:「ファイルを送って」
- クライアントは操作を実行し、サーバーにこれを送信します
したがって、HTTPには要求と応答しかないため、HTTPを介したものを使用してこれを実際に行う方法がわかりません。GET(ステップ1と2)とPOST(ステップ3)を使用してこれを行うことができると思いますが、サーバー側での多くの簿記(リクエストごとのCookieまたは何かなど)。
これを行うためのクロスプラットフォームの方法を探しています。クライアントはC#になりますが、サーバーについてはまだ決心していません。これがHTTP経由で行われるかどうかは関係ないので、「Webサービス」が適用できる場合とできない場合があります。
私の説明に合うプロトコル/コンベンションに関するアイデアはありますか?私を正しい方向に向けてもらえますか?