- JDK1.8
- Netty-4.1.42.Final
- protobuf-java 3.9
名称 |
长度 |
数据 |
说明 |
magic |
4 |
0x0CAFFEE0 |
唯一通信标志 |
length |
4 |
0x16+body.length |
消息总长度 |
moduleId |
4 |
- |
功能大模块 |
cmdId |
4 |
- |
具体功能 |
body |
body.length |
- |
消息体 |
名称 |
说明 |
ScanMapping |
控制器的包路径 |
ReqMapping |
标记协议号的分发 |
AutoIn |
对象自动注入 |
MapperScan |
扫描mapper层,标记为操作db的对象 |
ServiceImpl |
标记需要service服务实现的interface对象 |
1. 协议栈的消息id编号
2. 消息对象
3. protoBuffer生成的对象
生成xml配置的协议消息
可打出jar包单独拎出来执行
resources的msg-id为协议消息目录,可以直接执行jar文件
1. DbConnectionPool
2. netty的handler
3. 监听器
4. 协议消息注册中心
5. 消息分发处理
一个放proto文件的文件夹
proto文件编译可执行的java对象
具体的功能实现模块
1. guava缓存
2. 控制器controller的实现
3. 监听器的实现
4. service服务对象实现
5. mapper操作DB
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协议栈消息