私はノード/ssjsプログラムを書いていました:
- TLS モジュールを使用したデータ サーバー (Apache MIMA) への TCP 接続。(わかった)
- protobuffer モジュールを介してメッセージをエンコード/デコード (シリアル化/逆シリアル化) します.. (OK)
- シリアル化されたメッセージをサーバーに送信し、応答を取得します。(良くないですよ)。
サーバーのマニュアル タイプ:
Structure of message:
[ Length | Header length | Header (| Body length |Body) ]
Length – message length = fixed size (4 bytes). Note that this is only the size of
following message (not the prefix itself);
Header length – fixed size (4 bytes);
Header – contains message metadata (e.g. messageId);
Body length – fixed size (4 bytes, optional). If body is not required, body size is
not serialized. In such case, message is 4 (message length) + 4
(header length) + length(header) bytes long.
Body – the message payload (optional). If body is not present (e.g. response
notification without data) it is not serialized.
Length [bytes] Content
4 Whole message length
4 Header message length (H_LEN)
H_LEN Protocol Buffers encoded MessageHeaderProto
4 Body message length (B_LEN), optional
B_LEN Protocol Buffers encoded Message
私の質問は次のとおりです。
- protobuffer の 4 バイト長を取得するには?
- 送信前にこれらのバッファを連結する方法は?
- どのように送信します?
- JavaScriptでできますか?観察: サーバーはリトル エンディアンのバイト順を使用し、クライアント側も同様です。
皆さん、ありがとうございました...