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

axcure做网站ui互联网广告平台有哪些

axcure做网站ui,互联网广告平台有哪些,视频网站上市公司有哪些,wordpress集成文库插件系列文章目录 第一章 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.ds6.com.cn/news/68729.html

相关文章:

  • 沈阳网站建设建设公司排名网站优化推广怎么做
  • wordpress中文免费企业模板下载网站seo搜索引擎优化案例
  • 哪些做网站的公司seo数据
  • 如何架设内部网站网站优化关键词排名公司
  • 网站建设 php怎样建立自己网站
  • 国内做的好的网站上海关键词优化公司哪家好
  • 企业培训师资格证报考2022广东网络优化推广
  • 网站建设与推广的策划方案广东整治互联网霸王条款
  • c2b做的好的网站一手渠道推广平台
  • 跨境电商网站建设收录查询api
  • 西宁建设局官方网站网页设计与制作步骤
  • 阿根廷网站后缀推广普通话手抄报模板可打印
  • 广州网站建设知名乐云seo优化关键词的方法正确的是
  • 网络营销网站规划建设实训作业设计网站一般多少钱
  • doooor设计seo索引擎优化
  • 网站建设 兼职 外包中国最权威的网站排名
  • 网站建设的问题培训计划模板
  • 信息科技有限公司网站建设网站推广的6个方法是什么
  • 界面设计属于什么专业seo课程总结
  • 建设 互动 网站 模式软文推广代理平台
  • 如何查看用wordpress建的站点网页搜索优化
  • 网站内容管理媒体推广
  • 专做特卖的网站seo教程 百度网盘
  • 云主机做网站域名打不开北京seo实战培训班
  • 个人网站设计介绍文字俄罗斯搜索引擎yandex
  • 网站加入悬浮客服网站建设公司seo关键词
  • 网页布局类型及实例网店seo名词解释
  • 西安做视频网站公司免费b站推广网站
  • 成品app想找搜索引擎优化
  • 汕头在线制作网站长沙网站制作公司哪家好