zoukankan      html  css  js  c++  java
  • grpc调用protobuf生成的文件

    记录下protoc生成go文件后,使用grpc调用的过程

    • grpc安装

     go get -u -v google.golang.org/grpc 

    • server.go
    package main
    
    import (
    	"context"
    	"fmt"
    	"google.golang.org/grpc"
    	"net"
    	"rpc/student"
    	"strconv"
    )
    
    type Stu struct {
    
    }
    
    func (s Stu) GetInfo (ctx context.Context, req *student.StuReq) (*student.Student, error){
    
    	student := student.Student{
    		Score: 10,
    		P:     &student.Person{
    			Name: "hello"+ strconv.Itoa(int(req.Id)),
    			Sex:  0,
    		},
    		Like:  []string{
    			"football",
    			"sport",
    		},
    	}
    
    	return &student,nil
    }
    
    func main(){
    
    	grpcServer := grpc.NewServer()
    
    	student.RegisterStuServiceServer(grpcServer,new(Stu))
    
    	listen,err := net.Listen("tcp","127.0.0.1:8082")
    	if err != nil{
    		fmt.Println(err)
    	}
    	defer listen.Close()
    
    	grpcServer.Serve(listen)
    
    }
    
    • client.go
    package main
    
    import (
    	"context"
    	"fmt"
    	"google.golang.org/grpc"
    	"rpc/student"
    )
    
    func main(){
    
    	client,err := grpc.Dial("127.0.0.1:8082",grpc.WithInsecure())
    	if err != nil{
    		fmt.Println(err)
    	}
    	defer client.Close()
    
    	stuClient := student.NewStuServiceClient(client)
    
    	stuReq := student.StuReq{Id:1}
    
    	stu,err := stuClient.GetInfo(context.TODO(),&stuReq)
    	if err != nil{
    		fmt.Println(err)
    	}
    
    	fmt.Println(stu)
    }
    

      

  • 相关阅读:
    解决ajax 发送post 请求时csrf_token 问题
    pip 常用命令
    mac 查看端口的使用情况
    使用from __future__ import unicode_literals
    git 使用
    django rest_framework
    Apache JMeter 接口压力测试
    HTTP 协议
    自定义异步非阻塞web框架
    WebSocket
  • 原文地址:https://www.cnblogs.com/itsuibi/p/14727186.html
Copyright © 2011-2022 走看看