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)
相关推荐
油丶酸萝卜别吃4 小时前
utils.js 说明文档
开发语言·javascript·ecmascript
花酒锄作田5 小时前
Go - 注册表工厂模式的简单实现
golang
zyplayer-doc7 小时前
VuePress类静态文档站和动态知识库怎么选:两种技术路线的适用场景
javascript·人工智能·后端·安全·智能手机
leisoo80977 小时前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
不会代码的小猴8 小时前
21. 泛型编程上
开发语言·c++·笔记·算法
用户938515635079 小时前
从前后端分离到前端接口工程:React + MockJS + Vite 解析
前端·后端·全栈
一只旭宝9 小时前
细讲C加加【9】C++ std::function与std::bind详解|仿函数、绑定器、类成员绑定、占位符、成员偏移指针
开发语言·c++·算法
码事漫谈9 小时前
世界由什么构成——这个问题比你想的更缠人
后端
摇滚侠9 小时前
《SpringBoot 3:入门与应用实战》第 2 章 IOC 思想与实现 阅读笔记 1
spring boot·笔记·后端