# chatroom-netty **Repository Path**: pidaner/chatroom-netty ## Basic Information - **Project Name**: chatroom-netty - **Description**: 采用netty实现客户端和服务端之间通信群聊、私聊效果,序列化方式采用jdk方式 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2021-05-03 - **Last Updated**: 2024-08-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # chatroom-netty #### 介绍 采用netty实现客户端和服务端之间通信群聊、私聊效果 代码基本全部有注释,通俗易懂 #### 技术栈 netty知识栈为主,项目包含netty基本技术点 #### 项目包模块介绍 1. client包:客户端及客户端处理器 2. config:配置类,配置application.properties可灵活选择序列化方式,本项目有jdk和json两种序列化方式,json方式有点小bug 3. message:消息类有Message和AbstractResponseMessage两个抽象类,RequestMessage类型继承Message类,ResponseMessage继承AbstractResponseMessage 4. protocol:协议类,MessageCodec作为测试,MessageCodecSharable类是项目使用的自定义协议类,包含编解码,使用jdk方式序列化反序列化 ProtocolFrameDecoder类继承了LengthFieldBasedFrameDecoder类,解决半包黏包问题,确保消息传输的完整性 Serializer类,枚举类Algorithm的内部类java和json重写了Serializer类的序列化和反序列化方法 5. server,包含了handler包、service包、session包、ChatServer服务启动类 6. handler:服务端处理器类 7. service:只实现了登录需求 8. session:包含会话接口session(有bind、unbind等接口方法)和GroupSession(createGroup、joinMember、removeMember等接口方法) #### 使用说明 测试账号密码 1. zhangsan 123 2. lisi 123 3. wangwu 123 4. mazi 123