2

我写了一个 node/ssjs 程序,它使:

  • Tcp 连接到数据服务器(Apache MIMA),使用 TLS 模块。(好的)
  • 通过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 做吗?观察:服务器使用Little Endian字节顺序,客户端也使用。

谢谢你们...

4

0 回答 0