当前位置: 首页 > news >正文

多国语言网站模板网站建设炫彩图片

多国语言网站模板,网站建设炫彩图片,seo是一种利用搜索引擎,营销软件哪个好系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、前言二、定义proto文件三、编写server服务端四、编写client客…

系列文章目录
第一章 grpc基本概念与安装
第二章 grpc入门示例
第三章 proto文件数据类型
第四章 多服务示例
第五章 多proto文件示例
第六章 服务器流式传输
第七章 客户端流式传输
第八章 双向流示例


文章目录

  • 一、前言
  • 二、定义proto文件
  • 三、编写server服务端
  • 四、编写client客户端
  • 五、测试
  • 六、示例代码


一、前言

了解了rpc服务器流式传输,客户端流式传输,也知道了对应的使用场景。本文开始介绍双向流,双向流其实就是客户端源源不断的发数据、内容给服务端,服务端源源不断的发数据、内容给客户端。其应用场景,最常见的就是即时通讯

二、定义proto文件

新建stream.proto文件

// 指定proto版本
syntax = "proto3";
// 指定默认包名
package each_proto;
// 指定golang包名
option go_package = "/each_proto";//定义个流服务,叫什么名字无所谓
service EachStream {//关键字streamrpc Chat(stream Request)returns(stream Response){}
}
//请求参数
message Request{string content = 1;
}//回调参数
message Response{string message =1;
}

go_grpc_study/example_6/grpc_proto目录下新建Terminal,执行生成文件,命令如下

protoc --go_out=. --go-grpc_out=. ./stream.proto

目录结构变更后为

具体步骤如下:

  • 1)定义请求message结构体Request,回调message结构体Response,使用string数据类型
  • 2)定义EachStream服务
  • 3)在服务里面,定义rpc方法Chat,使用关键词stream用于Request结构体、Response结构体

三、编写server服务端

新建server目录,新建main.go文件
目录结构如下

编写server/main.go文件

package mainimport ("fmt""go_grpc_study/example_6/grpc_proto/each_proto""google.golang.org/grpc""log""net"
)// 新版本 gRPC 要求必须嵌入 UnimplementedGreeterServer 结构体
type EachStream struct {each_proto.UnimplementedEachStreamServer
}func (EachStream) Chat(stream each_proto.EachStream_ChatServer) error {for i := 0; i < 5; i++ {request, _ := stream.Recv()fmt.Println(request)stream.Send(&each_proto.Response{Message: fmt.Sprintf("第 %d 次回应你好", i+1),})}return nil
}func main() {// 监听端口listen, err := net.Listen("tcp", ":8080")if err != nil {log.Fatal(err)}// 创建一个gRPC服务器实例。server := grpc.NewServer()// 将server结构体注册为gRPC服务。each_proto.RegisterEachStreamServer(server, &EachStream{})fmt.Println("grpc server running :8080")// 开始处理客户端请求。server.Serve(listen)
}

具体步骤如下:

  • 1)定义1个结构体,结构体名称无所谓,必须包含each_proto.UnimplementedEachStreamServer 对象
  • 2)实现 .proto文件中定义的API即Chat 聊天方法
  • 3)通过stream对象的Recv()方法得到客户端发送的数据,循环5次读取,并依次回应给客户端
  • 4)将服务描述及其具体实现注册到 gRPC

四、编写client客户端

新建client目录,新建main.go文件
目录结构如下

编写clinet/main.go文件

package mainimport ("context""fmt""go_grpc_study/example_6/grpc_proto/each_proto""google.golang.org/grpc""google.golang.org/grpc/credentials/insecure""log"
)func main() {addr := ":8080"// 使用 grpc.Dial 创建一个到指定地址的 gRPC 连接。// 此处使用不安全的证书来实现 SSL/TLS 连接conn, err := grpc.Dial(addr, grpc.WithTransportCredentials(insecure.NewCredentials()))if err != nil {log.Fatalf(fmt.Sprintf("grpc connect addr [%s] 连接失败 %s", addr, err))}defer conn.Close()// 初始化客户端client := each_proto.NewEachStreamClient(conn)stream, err := client.Chat(context.Background())for i := 0; i < 5; i++ {stream.Send(&each_proto.Request{Content: fmt.Sprintf("第% d 次 打招呼", i),})response, err := stream.Recv()fmt.Println(response, err)}
}

具体步骤如下:

  • 1)首先使用 grpc.Dial()gRPC 服务器建立连接
  • 2)使用 each_proto.NewEachStreamClient(conn)初始化客户端
  • 3)通过客户端调用ServiceAPI方法client.Chat,并得到stream对象
  • 4)循环5次向服务器打招呼,并输出服务器的响应

五、测试

server目录下,启动服务端

go run main.go

clinet目录下,启动客户端

go run main.go

服务端运行结果

客户端运行结果

六、示例代码

go_grpc_study:grpc学习golang版


完成ヾ(◍°∇°◍)ノ゙

http://www.yayakq.cn/news/402737/

相关文章:

  • 网站建设与管理实训心得体会哈尔滨制作网站多少钱
  • 注册一个个人网站常用网站搜索引擎
  • 专业做网站制作自助建站系统网站二级目录做优化
  • 上门做指甲哪个网站网络广告策略有哪些
  • 南山区做网站深圳保障性住房统一轮候信息系统
  • 加油站建设专业网站张家港设计网站
  • 网站推广软件费用是多少遵义外国网站制作
  • 杭州设计师网站南京建网站
  • wordpress网站布置windows优化大师下载
  • 宜昌便宜做网站微信公众号制作平台
  • 娱乐企业网站建设用django做的网站
  • 如何提交网站地图网站 错位
  • 营销型网站建设思路中国500强公司有哪些
  • 营销系统有哪些福安seo
  • 网站文字排版seo整站优化新站快速排名
  • 万网域名在中国电信网站备案系统上海宽带网网站
  • 网站建设首选-云端高科公司网站购物平台建设
  • 网站服务器哪些好wordpress更新超时
  • 郴州网站建设哪家比较好东莞专业网
  • 星河东莞网站建设课程网站怎么做
  • 注册网站诚信承诺书毕设网站开发需要做什么
  • 云南建设厅查证网站答题助手网站怎么做的
  • 南昌做网站市场报价工业设备网站源码
  • dw 做网站的思路wordpress恢复主题
  • asp网站改成php广州建站模板厂家
  • 做问卷哪个网站好wordpress导入数据库依然无法链接
  • 中启智联网站建设网站设计策划方案
  • 网站ip屏蔽wordpress导航页面模板下载地址
  • 网站后台怎么进入wordpress律师在线咨询免费24小时电话
  • 垫江网站建设费用网站开发的基础课程