当前位置: 首页 > news >正文

Go语言实现长连接并发框架 - 消息

文章目录

  • 前言
  • 接口
  • 结构体
  • 接口实现
  • 项目地址
  • 最后

前言

你好,我是醉墨居士,上篇博客实现了对连接的封装,那我们对连接的读写操作涉及数据格式的定义,我们采用统一的数据格式。使用我们这种数据格式的数据,我们将其称之为消息

接口

trait/message.go

type Message interface {ID() uint16DataLen() uint16Data() []byteSetID(uint16)SetDataLen(uint16)SetData([]byte)
}

结构体

gpack/message.go

// Message 业务消息
type Message struct {//消息IDid uint16//消息的长度dataLen uint16//消息的内容data []byte
}// 创建一个message
func NewMessage(id uint16, data []byte) *Message {return &Message{id:      id,dataLen: uint16(len(data)),data:    data,}
}

接口实现

gpack/message.go

// ID 返回消息ID
func (m *Message) ID() uint16 {return m.id
}// DataLen 返回消息体的长度
func (m *Message) DataLen() uint16 {return m.dataLen
}// Data 返回消息的内容
func (m *Message) Data() []byte {return m.data
}// SetID 设置消息ID
func (m *Message) SetID(id uint16) {m.id = id
}// SetDataLen 设置消息体的长度
func (m *Message) SetDataLen(dataLen uint16) {m.dataLen = dataLen
}// SetData 设置消息的内容
func (m *Message) SetData(data []byte) {m.data = data
}

项目地址

Github:https://github.com/zm50/gte
Giee:https://gitee.com/zm50/gte

最后

我是醉墨居士,我们完成了框架内部连接中的数据传输中数据格式的消息定义,后续我们可以基于这个消息进行相关连接数据读取,消息封装,消息分发等步骤的处理

http://www.lryc.cn/news/457177.html

相关文章:

  • 湖南(市场咨询)源点调研 如何明确调研焦点与分析单位的特征
  • java 方法引用与构造器引用
  • python3的语法
  • Spring Data JPA中的锁机制
  • mybatis分页拦截器
  • React学习过程(持续更新......)
  • pve lxc容器探索,陆续完善中
  • 5款人声分离免费软件分享,从入门到精通,伴奏提取分分钟拿捏!
  • 镭速助力解决企业大文件传输难题
  • SpringBootWeb AOP
  • 傅里叶分析之掐死教程(完整版)更新于2014.06.06
  • macOS终端配置自动补全功能
  • 华为---MUX VLAN简介及示例配置
  • docker详解介绍+基础操作 (四)容器镜像
  • PostgreSQL数据库定期清理归档(pg_wal)日志
  • RTTI介绍
  • 【C#生态园】C#推送通知库大比拼:选择最适合你项目的库
  • 乐歌E5,E6系列升降桌质量如何?2024推荐必买的四款热销型号
  • Android广播
  • Chapter 2 - 3. Understanding Congestion in Fibre Channel Fabrics
  • 014 属性分组
  • ElasticSearch备考 -- Alias
  • 使用AI编码,这些安全风险你真的了解吗?
  • 计算机网络实验一:组建对等网络
  • R语言绘制折线图
  • 基于组合模型的公交交通客流预测研究
  • docker环境redis启动失败
  • Pandas库详细学习要点
  • 光路科技TSN交换机:驱动自动驾驶技术革新,保障高精度实时数据传输
  • 【含开题报告+文档+PPT+源码】基于SpringBoot的社区家政服务预约系统设计与实现【包运行成功】