golang 使用protobuf

复制代码
1.下载protobuf的编译器,安装到系统设置环境变量
地址:https://github.com/protocolbuffers/protobuf/releases
下载对应的编译器
2.安装库文件 二选一
go get github.com/golang/protobuf/proto
go get github.com/gogo/protobuf/proto
安装go语言插件
go install github.com/gogo/protobuf/protoc-gen-gogo
生成命令protoc --gogo_out=. ./*.proto  当前目录下的协议输出到当前

协议格式

复制代码
syntax = "proto3";
package protocol;

message Message {
    string avatar = 1;       //头像
    string fromUsername = 2; // 发送消息用户的用户名
    string from = 3;         // 发送消息用户uuid
    string to = 4;           // 发送给对端用户的uuid
    string content = 5;      // 文本消息内容
    int32 contentType = 6;   // 消息内容类型:1.文字 2.普通文件 3.图片 4.音频 5.视频 6.语音聊天 7.视频聊天
    string type = 7;         // 消息传输类型:如果是心跳消息,该内容为heatbeat,在线视频或者音频为webrtc
    int32 messageType = 8;   // 消息类型,1.单聊 2.群聊
    string url = 9;          // 图片,视频,语音的路径
    string fileSuffix = 10;  // 文件后缀,如果通过二进制头不能解析文件后缀,使用该后缀
    bytes file = 11;         // 如果是图片,文件,视频等的二进制
}

前端生成文件

1.安装库

npm install protobufjs

2.生成protoc的js文件到目录

npx pbjs -t json-module -w commonjs -o src/chat/proto/proto.js src/chat/proto/*.proto

src/chat/proto/proto.js 是生成的文件的目录路径及其文件名称

src/chat/proto/*.proto 是自己写的字段等

复制代码
npx pbjs  -t json message.proto --es6 "proto.js"
npx pbjs  -t json message.proto --ts "proto.ts" 

使用

复制代码
msg := &protocol.Message{}
proto.Unmarshal(message, msg)
相关推荐
深栈解码1 分钟前
JMM深度解析(三) volatile实现机制详解
java·后端
张家宝68378 分钟前
ambari
后端
StephenCurryFans10 分钟前
Spring AI vs LangChain4j:Java AI开发框架完整对比指南 🚀
后端·spring
liujing1023292913 分钟前
Day04_刷题niuke20250703
java·开发语言·算法
程序员辉哥14 分钟前
学会在Cursor中使用Rules生成代码后可以躺平了吗?
前端·后端
Brookty16 分钟前
【MySQL】JDBC编程
java·数据库·后端·学习·mysql·jdbc
_代号00719 分钟前
MySQL梳理一:整体架构概览
后端·mysql
前端付豪22 分钟前
11、打造自己的 CLI 工具:从命令行到桌面效率神器
后端·python
前端付豪22 分钟前
12、用类写出更可控、更易扩展的爬虫框架🕷
后端·python
今夜星辉灿烂23 分钟前
nestjs微服务-系列2
javascript·后端