4

JSON を使用して TCP ソケットを介してリモート サーバーと通信する、expresss.js に基づく RESTful API を作成しました。要求された URL は適切な JSON メッセージに変換され、新しい TCP ソケットが開かれ、メッセージが送信されます。次に、同じ接続からのメッセージが受信されると、イベントが発生し、JSON 応答が評価され、新しい JSON メッセージが GET 要求の結果として返されます。

可能なパス:

  1. Async (現在使用中) - リクエストごとにサーバーへの接続を開きます。
  2. 同期 - すべてのリクエストでキューを作成し、レスポンスを待ってコードをブロックします。
  3. 追跡 - すべてのリクエストを一度に送信し、非同期で回答を受け取ります。リクエストでトラッカー ID を使用して、各リクエストをその回答に関連付けます。

どの方向に進むのが最善でしょうか?この種のアプリケーションを解決するための一般的なパターンはありますか?

4

1 に答える 1

1

1(非同期、リクエストごとの新しい接続)は、おそらく実装が最も簡単です。

ソケットを効率的に再利用したい場合は、独自の「キープアライブ」メカニズムを考え出す必要があります。基本的に、同じソケットを使用して複数の要求と応答をストリーミングします。

おそらく、各JSONリクエストの区切り文字としてdouble CRLF('\ n \ r \ n \ r')を使用し、リクエストごとに' request'イベントを発生させ、単純に非同期で回答を書き戻します。区切り文字なしのストリーミングは可能ですが、ソケットから部分的なJSON文字列を受信する場合は追加の解析が必要です。

于 2012-12-10T04:53:45.827 に答える