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

网站建设员工分工如何推广一个网站

网站建设员工分工,如何推广一个网站,页面设计软件教程,php网站怎么做测试工具前期准备 工具安装及使用 grpc开发 编写proto文件 proto文件是符合Protocol Buffers语言规范的数据交换协议文件,就像以前WebService定义服务时使用的XML文件。现在一般都是用proto3了,这里创建一个名为 hello.proto 的文件,放到项目的pr…

前期准备

工具安装及使用

grpc开发

编写proto文件

proto文件是符合Protocol Buffers语言规范的数据交换协议文件,就像以前WebService定义服务时使用的XML文件。现在一般都是用proto3了,这里创建一个名为 hello.proto 的文件,放到项目的proto目录下:

syntax = "proto3";option go_package="/proto";package Business;service Hello {rpc Say (SayRequest) returns (SayResponse);
}message SayResponse {string Message = 1;
}message SayRequest {string Name = 1;
}

这个协议很简单,有个名字为Hello的服务,提供一个名字为Say的rpc方法,这个方法有输入输出,输入信息中有一个名为Name的参数,输出信息中有一个名为Message的返回值。

生成grpc代码

在项目根目录执行执行: protoc --go_out=. --go-grpc_out=. ./proto/hello_grpc.proto

go mod init

# 初始化项目名为test
go mod init test# 安装依赖包
go mod tidy

服务端代码编写

// server.go
package mainimport ("context""fmt""net""test/proto""google.golang.org/grpc"
)type server struct {proto.UnimplementedHelloServer
}func (s *server) Say(ctx context.Context, req *proto.SayRequest) (*proto.SayResponse, error) {fmt.Println("request:", req.Name)return &proto.SayResponse{Message: "Hello " + req.Name}, nil
}func main() {listen, err := net.Listen("tcp", ":8001")if err != nil {fmt.Printf("failed to listen: %v", err)return}s := grpc.NewServer()proto.RegisterHelloServer(s, &server{})//reflection.Register(s)defer func() {s.Stop()listen.Close()}()fmt.Println("Serving 8001...")err = s.Serve(listen)if err != nil {fmt.Printf("failed to serve: %v", err)return}
}

客户端代码编写

// client.go
package mainimport ("bufio""context""fmt""os""test/proto""google.golang.org/grpc""google.golang.org/grpc/credentials/insecure"
)func main() {var serviceHost = "127.0.0.1:8001"conn, err := grpc.NewClient(serviceHost, grpc.WithTransportCredentials(insecure.NewCredentials()))if err != nil {fmt.Println(err)}defer conn.Close()client := proto.NewHelloClient(conn)rsp, err := client.Say(context.TODO(), &proto.SayRequest{Name: "test",})if err != nil {fmt.Println(err)}fmt.Println(rsp)fmt.Println("按回车键退出程序...")in := bufio.NewReader(os.Stdin)_, _, _ = in.ReadLine()
}

验证

# 安装依赖包
go mod tidy# 启动服务端代码
go run server.go
# Serving 8001...# 启动客户端代码
go run client.go
# Message:"Hello test"# 服务端输出
# request: test
http://www.dtcms.com/wzjs/139311.html

相关文章:

  • 衢州 做 网站简述什么是网络营销
  • html手机模板提供搜索引擎优化公司
  • 网上作业网站怎么做的新东方教育培训机构
  • 国外网站建设官网广告软文小故事200字
  • 如何做网站首页的psd图在线代理浏览网页
  • 网站制作过程简介销售平台排名
  • 凡科的模板做网站互联网服务平台
  • 浏览器网站在线进入关键词优化
  • 个人网站需公安备案吗广州网络seo公司
  • 网站开发公司面试题收录网站是什么意思
  • wordpress解决速度新的seo网站优化排名 网站
  • 建网站难不难南京百度关键字优化价格
  • 淮安 做网站 app链接
  • 设计建设网站公司新东方
  • 有哪些可以做兼职的网站官网制作公司
  • 长春做网站哪里好武汉seo搜索引擎优化
  • 邯郸网站建设公司哪家好软文关键词排名推广
  • 阜阳市网站建设广西网络优化seo
  • 建设网站西安关键词你们懂的
  • aspnet网站建设十堰seo优化方法
  • 乌海品牌网站建设如何注册一个自己的网站
  • web网站开发学院搜索引擎yandex入口
  • 宁波网站建设58同城百度收录站长工具
  • 株洲网站搜索优化东莞网络推广策略
  • 专业的网站建设服务做个网页需要多少钱?
  • 优秀产品设计seo搜索引擎优化技术
  • 手机版网站优化磁力岛
  • 程序员不是做网站的电商运营平台
  • 手机网站怎么建百度极简网址
  • 网站制作 天津seo如何优化排名