• 5.1 创建消息封装类型

    5.1 创建消息封装类型

    zinx/ziface/下创建imessage.go文件

    zinx/ziface/imessage.go

    1. package ziface
    2. /*
    3. 将请求的一个消息封装到message中,定义抽象层接口
    4. */
    5. type IMessage interface {
    6. GetDataLen() uint32 //获取消息数据段长度
    7. GetMsgId() uint32 //获取消息ID
    8. GetData() []byte //获取消息内容
    9. SetMsgId(uint32) //设计消息ID
    10. SetData([]byte) //设计消息内容
    11. SetDataLen(uint32) //设置消息数据段长度
    12. }

    同时创建实例message类,在zinx/znet/下,创建message.go文件

    zinx/znet/message.go

    1. package znet
    2. type Message struct {
    3. Id uint32 //消息的ID
    4. DataLen uint32 //消息的长度
    5. Data []byte //消息的内容
    6. }
    7. //创建一个Message消息包
    8. func NewMsgPackage(id uint32, data []byte) *Message {
    9. return &Message{
    10. Id: id,
    11. DataLen: uint32(len(data)),
    12. Data: data,
    13. }
    14. }
    15. //获取消息数据段长度
    16. func (msg *Message) GetDataLen() uint32 {
    17. return msg.DataLen
    18. }
    19. //获取消息ID
    20. func (msg *Message) GetMsgId() uint32 {
    21. return msg.Id
    22. }
    23. //获取消息内容
    24. func (msg *Message) GetData() []byte {
    25. return msg.Data
    26. }
    27. //设置消息数据段长度
    28. func (msg *Message) SetDataLen(len uint32) {
    29. msg.DataLen = len
    30. }
    31. //设计消息ID
    32. func (msg *Message) SetMsgId(msgId uint32) {
    33. msg.Id = msgId
    34. }
    35. //设计消息内容
    36. func (msg *Message) SetData(data []byte) {
    37. msg.Data = data
    38. }

    整理一个基本的message包,会包含消息ID数据数据长度三个成员,提供基本的setter和getter方法,目的是为了以后做封装优化的作用。同时也提供了一个创建一个message包的初始化方法NewMegPackage