DotNetty系列四:自定义协议,序列化类库MessagePack

本文档介绍了如何在DotNetty中使用MessagePack进行自定义协议的序列化。首先通过Nuget引入MessagePack和MessagePackAnalyzer库,接着创建消息枚举、接口和实现类。然后实现MessagePack编码器和解码器,修改服务器和客户端的管道配置。服务端和客户端的接收与发送功能也相应进行了调整,以支持新的序列化协议。此外,还展示了如何处理List类型的消息接收。完整项目源码可在提供的链接中下载。
摘要由CSDN通过智能技术生成

在上一节基础上,实现自定义协议,使用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值