在上一节基础上,实现自定义协议,使用MessagePack序列化。
1上引入:Nuget: MessagePack,MessagePackAnalyzer
2..在类库项目,新建一个枚举(标识命令),一个消息接口,一个消息实现。
public enum COMMAND
{
/// <summary>
/// 心跳
/// </summary>
HeartBeat = 1000,
/// <summary>
/// 消息
/// </summary>
Message = 1,
/// <summary>
/// 上线通知
/// </summary>
OnlineNotify = 1001,
/// <summary>
/// 下线通知
/// </summary>
OfflineNotify = 1002,
/// <summary>
/// 空消息
/// </summary>
NULL = 0,
}
public interface IMessage
{
COMMAND Command { set; get; }
string Content { get; set; }
}
[MessagePackObject] //messagepack必须
public class Message : IMessage
{
[Key(0)]//排序
public COMMAND Command { get; set; }
[Key(1)]
public string Content { get; set; }
}
3.新建一个MessagePack序列化操作类。
public static class MessagePackHelper
{
public static byte[] SerializeToBinary<T>(T obj) => MessagePackSerializer.Serialize(obj);
public static T DeserializeWithB