【发布时间】:2015-01-04 16:47:49
【问题描述】:
一个java客户端根据这个骨架构造一个Message:
package tutorial;
option java_package = "com.example.sff.piki2";
option java_outer_classname = "MsgProtos";
message MSG {
required string guid = 1;
required int32 MsgCode = 2;
required int32 From = 3; //sender
...
此消息被发送到 C# 程序(服务器端)。
服务器知道如何读取字节(第一个字节是要读取的字节数,代表后面消息的大小)。
这就是字节数组构造 MSG 的方式。
MSG Msg = MSG.CreateBuilder().MergeFrom(buffer).Build();
其中 buffer 是从套接字读取的字节数组。
但现在我处于客户端需要发送“心跳”消息(另一个消息)以检查服务器是否处于活动状态的情况。 (服务器应该响应:“是的,我还活着”)
当然,我可以在MSG 类中添加另一个字段。但我不想这样做,因为 MSG 类有很多不必要的字段 - 对于 Heartbeat 操作。
问题:
服务器读取 n 个字节。无论如何我可以知道这是MSG 消息还是“心跳”消息?
【问题讨论】:
标签: c# protocol-buffers protobuf-csharp-port