2

私はノード/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でできますか?観察: サーバーはリトル エンディアンのバイト順を使用し、クライアント側も同様です。

皆さん、ありがとうございました...

4

0 に答える 0