名称 | 长度 | 数据 | 说明 |
---|---|---|---|
magic | 4 | 0x0CAFFEE0 | 唯一通信标志 |
length | 4 | 0x16+body.length | 消息总长度 |
moduleId | 4 | - | 功能大模块 |
cmdId | 4 | - | 具体功能 |
body | body.length | - | 消息体 |
名称 | 说明 |
---|---|
ScanMapping | 控制器的包路径 |
ReqMapping | 标记协议号的分发 |
AutoIn | 对象自动注入 |
MapperScan | 扫描mapper层,标记为操作db的对象 |
ServiceImpl | 标记需要service服务实现的interface对象 |
- common
项目中的公共模块
- msg-proto
1. 协议栈的消息id编号
2. 消息对象
3. protoBuffer生成的对象
- msg-template
生成xml配置的协议消息
可打出jar包单独拎出来执行
resources的msg-id为协议消息目录,可以直接执行jar文件
- server-basic
1. DbConnectionPool
2. netty的handler
3. 监听器
4. 协议消息注册中心
5. 消息分发处理
- protobuf
一个放proto文件的文件夹
proto文件编译可执行的java对象
- server-system
具体的功能实现模块
1. guava缓存
2. 控制器controller的实现
3. 监听器的实现
4. service服务对象实现
5. mapper操作DB
- release
一些文件
1. 导入该目录的sql
- server-all
服务启动
- client-test
- 服务启动
1. 修改 \server-system\src\main\resources\db_server.properties 中的db连接配置
2. 通过MAIN方法启动 com.github.chenmingq.server.all.ServerStart
@ScanMapping(name = "com.github.chenmingq.server.system.controller")
public class ServerStart {
public static void main(String[] args) {
Server.startServer(ServerStart.class, args);
}
}
- 客户端测试
通过MAIN方法启动 com.github.chenmmingq.client.test.ClientStart
// com.github.chenmmingq.client.test.ClientAll
// 具体实现客户端创建的请求功能
cd socket-test
mvn clean package
cd socket-test/server-all/target
java -jar server-all-1.0-SNAPSHOT-jar-with-dependencies.jar
- 实现了客户端登陆测试
- 实现了客户端用户注册测试
- 存储二进制数据
- guava缓存
- session管理
- 监听器
- protobuf序列化数据传输
- 集成mybatis
- Executor线程实现
- 服务端心跳服务
- 通过注解实现TCP协议栈消息