栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

protoc 下载镜像

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

protoc 下载镜像

> 各服务端之间的通讯经常会用到protobuf,因为它比json这些更加的快速高效

[TOC]

## 安装编译器

### 安装protoc编译器

> 可在https://github.com/protocolbuffers/protobuf/releases 下载最新安装包

~~~

// 请自行将zip转换成tar.gz

wget https://github.com/protocolbuffers/protobuf/releases/download/v3.11.2/protoc-3.11.2-linux-x86_64.zip

tar zxvf protoc-3.11.2-linux-x86_64.tar.gz

~~~

> 配置环境变量

~~~

vim ~/.bash_profile

// 将/opt/protoc/bin加入到环境变量中

// 将go 安装的bin插件配置到环境变量中,可通过go env查看GOPATH=/root/go/,如 /root/go/bin

// 如 PATH=$PATH:$HOME/bin:/opt/protoc/bin:/opt/go/bin:/root/go/bin

source ~/.bash_profile

~~~

### go 安装编译器插件

> 此处go的安装步骤过滤,可参考go的安装篇

> 安装执行可以安装go的国内镜像,这样安装插件更加快速稳定

~~~

# 启用 Go Modules 功能

go env -w GO111MODULE=on

# 配置镜像

go env -w GOPROXY=https://goproxy.cn

# 查看是否生效

go env | grep GOPROXY

~~~

> 安装编译器插件

~~~

go get -u github.com/golang/protobuf/protoc-gen-go

~~~

## 创建pb测试文件 (test.proto)

> 头部需指定是proto2还是proto3,有些第三方提供的是没有包含,需要显示指定

> vim /opt/pbtest/test.proto

~~~

//syntax = "proto2";

syntax = "proto3";

package myapi;

// 字段都是用1,2,3这样的方式进行索引标识,等转换成PHP的类的时候,通过getXXFiled()的时候,则是根据这个索引标识进行获取

message Person {

int32 id = 1;

string name = 2;

string email = 3;

double money = 4;

bool is_rich = 5;

}

message player_login {

int32 user_id = 1;

string token = 2;

};

~~~

> 当前目录执行:`protoc --go_out=. *.proto`即可生成对应的go执行文件

## 进行代码测试

~~~

package main

import (

"fmt"

"github.com/golang/protobuf/proto"

"websocket_test/myapi"

)

func main() {

person := &myapi.Person{}

person.Id = 112

person.Name = "www"

person.Email = "www@qq.com"

person.Money = 11

person.IsRich = true

fmt.Println("Students信息为:",person)

// 序列化

buffer, _ := proto.Marshal(person)

fmt.Println("序列化之后的信息为:",buffer)

// 反序列化

data:=&myapi.Person{}

proto.Unmarshal(buffer,data)

fmt.Println("反序列化之后的信息为:",data)

}

~~~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/944555.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号