# ts-websocket-netty-protobuf框架 **Repository Path**: fandeng/ts-websocket-netty-protobuf ## Basic Information - **Project Name**: ts-websocket-netty-protobuf框架 - **Description**: 前端typescript,后端使用springboot+netty,通信使用websocket,消息协议使用protobuf构建的简单框架,提供了代码生成工具,前端使用protobufjs生成js代码和typescript类型声明文件,tools文件夹的工具用于生成前端的消息管理器,消息处理脚本和消息处理脚本管理器,后端生成消息管理器和消息处理脚本,发送消息后根据消息自动分发到对应的消息处理脚本 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2023-03-28 - **Last Updated**: 2024-02-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: WebSocket, Netty, protobuf, TypeScript ## README # ts-websocket-netty-protobuf框架 #### 介绍 前端typescript,后端使用springboot+netty,通信使用websocket,消息协议使用protobuf构建的简单框架,提供了代码生成工具,前端使用protobufjs生成js代码和typescript类型声明文件,tools文件夹的工具用于生成前端的消息管理器,消息处理脚本和消息处理脚本管理器,后端生成消息管理器和消息处理脚本,发送消息后根据消息自动分发到对应的消息处理脚本 #### 软件架构 软件架构说明 消息发送到后端,后端解析出msgId,根据msgId找出Protobuf生成的Msg类,然后调用类的静态方法parseForm解析出具体的消息实体,在根据msgId找出处理找个消息的脚本,把消息分发到找个脚本进行处理 消息发送到前端后,流程和后端一致,解析出msgId,根据msgId找出protobufjs生成的消息类型,调用静态方法decode()解析出具体消息实例,在根据msgId找到处理消息的脚本,把消息分发的这个脚本进行处理 #### 安装教程 1。前端直接npm install 安装依赖即可 2。proto文件放置在tools\protobuf_file文件夹下,后续的协议文件也可以放这里 3。tools\protobuf_compiler 文件夹放置proto文件转java的工具,代码生成工具打包后的jar包也可以放这里统一管理工具 4。tools\msg2codetool文件夹下是代码生成工具源代码,可以生成前端和后端的消息管理器,消息处理脚本和消息处理脚本的管理器,这些文件用来映射消息ID和具体消息类 #### 使用说明 1。前端安装依赖和后端环境搭建好 2。protobuf_file文件夹下写新的协议文件 3。protobuf_compiler下的工具先proto文件转java的消息类,前端目录里使用npm run pb将proto文件转为js代码,再pnpm run pb2ts生成类型声明文件 4。protobuf_compiler下的代码生成jar运行生成前后端代码 5。在前后端各自的消息处理脚本里编写业务逻辑即可 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 运行结果: ![运行结果](./.assets/同步正常.png)