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)
相关推荐
豆浆Whisky4 分钟前
深入剖析Go Channel:从底层原理到高阶避坑指南|Go语言进阶(5)
后端·go
写bug写bug9 分钟前
Lua语言教程:从基础到进阶
后端·lua
normaling11 分钟前
XML配置文件
后端
shepherd11122 分钟前
从零搭建高可用Kafka集群与EFAK监控平台:全流程实战总结
分布式·后端·kafka
_x_w23 分钟前
【12】数据结构之基于线性表的排序算法
开发语言·数据结构·笔记·python·算法·链表·排序算法
有诺千金26 分钟前
深入理解 Spring Boot 的@AutoConfiguration注解
java·spring boot·后端
代码吐槽菌28 分钟前
基于SpringBoot的律师事务所案件管理系统【附源码】
java·数据库·spring boot·后端·毕业设计
不爱学英文的码字机器31 分钟前
Rust 的征服:从系统编程到全栈开发的 IT 新宠
开发语言·后端·rust
flzjkl34 分钟前
【源码】【Java并发】【ReentrantLock】适合中学者体质的ReentrantLock源码阅读
java·后端
Victor35635 分钟前
Dubbo(49)如何排查Dubbo的集群容错问题?
后端