2 つのアプリケーションがそれらの間のソケットを開き、正当な json オブジェクトを送受信するプロトコルを計画しています。
一連のjsonオブジェクトを明確に解析できますか、それとも区切り文字が必要ですか、または各オブジェクトに長さなどのプレフィックスを付ける必要がありますか?
2 つのアプリケーションがそれらの間のソケットを開き、正当な json オブジェクトを送受信するプロトコルを計画しています。
一連のjsonオブジェクトを明確に解析できますか、それとも区切り文字が必要ですか、または各オブジェクトに長さなどのプレフィックスを付ける必要がありますか?
実際の JSON オブジェクトは、常に一致する { および } 文字で開始および終了します。したがって、事前に長さを知る必要なく、その場で境界を正しく決定するストリーム パーサーを構築できるはずです。
構文の詳細については、 json.orgを参照してください。
有効な JSON オブジェクトにはバランスの取れた区切り文字があります。
有効なオブジェクトのみを受け取ることを 100% 確信できますか? ネットワークの不具合はありますか? 送信者が送信中に死亡した場合はどうなりますか? 次のいずれかが必要になると思います。
a)。受信している JSON オブジェクトに関するいくつかの合意。これにより、合意されたペイロードのいずれかの開始が表示されるまで、部分的なストリームを無視できます。例えば。すべてが「エンベロープ」オブジェクトです
b)。スタックのような回復メカニズムは、新しいレコードの始まりが確実になるまで、開始区切り文字と終了区切り文字を押して「ポップ」カウントします。十分に病的な腐敗があると、これを確実に行うのは難しいように思えます。
私は最初のオプションを非常に好みます。