# cocos_creator_websocket_protobuf **Repository Path**: game-example/cocos_creator_websocket_protobuf ## Basic Information - **Project Name**: cocos_creator_websocket_protobuf - **Description**: 引擎:cocos creator; 版本:2.4.x; 语言:ts; 内置模块:websocket、protobuf 含有示例、proto3规范、命令行导出.d.ts文件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-11-27 - **Last Updated**: 2026-02-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ##### probuf使用说明 ### 一、安装nodejs 1.1 下载安装nodejs https://nodejs.org 1.1.1 建议修改安装路径,不要安装在C盘 1.1.‌2 勾选“Add to PATH”选项‌ 1.1.3 其他选项“Next”, 即可完成安装‌ 1.2 查看安装成功命令 1.2.1 node -v 1.2.2 npm -v ### 二、安装全局npm模块 2.1 npm install -g protobufjs 2.2 npm install -g protobufjs-cli 2.3 npm install -g pbjs 2.4 npm install -g fs-extra ### 三、拷贝文件 3.1 拷贝tools放入项目根目录下; 3.2 拷贝thirdy放入assets目录下; 3.3 "根目录\protos", 用来放.proto文件; 3.4 "根目录\tools\compile-proto"执行命令npm run build-proto; 3.5 "根目录\assets\proto"生成.d.ts和.js会被直接覆盖替换(注意查看文件是否为新); ### 四、调用方式 4.1 字符串转二进制 let strToUint8 = ProtobufManager.ins.stringToUint8Array("哈哈哈哈哈一二三四五哈哈哈哈哈"); let data: awesome.IExampleMessage = { id: 1, data: strToUint8, phones: ["1111111", "222222222"], type: awesome.PlayerType.Waiting, info: { name: "娃哈哈", rankId: 8, atk: 99.66, isPlayer: true, }, time: Date.now().toString(), } 4.2 加密 let encode = awesome.ExampleMessage.encode(data).finish(); 4.3 解密 let decode = awesome.ExampleMessage.decode(encode); 4.4 二进制字符串 decode.data = ProtobufManager.ins.Utf8ArrayToStr(decode.data); 4.5 日志打印 console.log("序列化:", encode); console.log("反序列化:", decode); ### 五、其他 5.1 如果执行3.4命令没生成文件, 拷贝"根目录\tools\compile-proto\node_modules"下所有文件到"根目录\node_modules"; 5.2 命令弃用(编译执行3.4) "#build-proto": "npm run build-proto:pbjs && npm run build-proto:pbts", "#build-proto:pbjs": "pbjs --target static-module --wrap ./wrap-pbjs.js --out ../../assets/proto/awesome.js ../../protos/awesome.proto", "#build-proto:pbts": "pbts --main --out ../../assets/proto/awesome.d.ts ../../assets/proto/awesome.js && node ./wrap-pbts"