🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#### 5.1 创建消息封装类型 在`zinx/ziface/`下创建`imessage.go`文件 > zinx/ziface/imessage.go ```go package ziface /* 将请求的一个消息封装到message中,定义抽象层接口 */ type IMessage interface { GetDataLen() uint32 //获取消息数据段长度 GetMsgId() uint32 //获取消息ID GetData() []byte //获取消息内容 SetMsgId(uint32) //设计消息ID SetData([]byte) //设计消息内容 SetDataLen(uint32) //设置消息数据段长度 } ``` 同时创建实例message类,在`zinx/znet/`下,创建`message.go`文件 > zinx/znet/message.go ```go package znet type Message struct { Id uint32 //消息的ID DataLen uint32 //消息的长度 Data []byte //消息的内容 } //创建一个Message消息包 func NewMsgPackage(id uint32, data []byte) *Message { return &Message{ Id: id, DataLen: uint32(len(data)), Data: data, } } //获取消息数据段长度 func (msg *Message) GetDataLen() uint32 { return msg.DataLen } //获取消息ID func (msg *Message) GetMsgId() uint32 { return msg.Id } //获取消息内容 func (msg *Message) GetData() []byte { return msg.Data } //设置消息数据段长度 func (msg *Message) SetDataLen(len uint32) { msg.DataLen = len } //设计消息ID func (msg *Message) SetMsgId(msgId uint32) { msg.Id = msgId } //设计消息内容 func (msg *Message) SetData(data []byte) { msg.Data = data } ``` 整理一个基本的message包,会包含**消息ID**,**数据**,**数据长度**三个成员,提供基本的setter和getter方法,目的是为了以后做封装优化的作用。同时也提供了一个创建一个message包的初始化方法`NewMegPackage`。 ####