62 Star 347 Fork 418

infraboard / go-course

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
main.go 1.30 KB
一键复制 编辑 原始数据 按行查看 历史
Mr.Yu 提交于 2022-01-14 22:40 . 补充grpc认证中间件
package main
import (
"context"
"fmt"
"log"
"gitee.com/infraboard/go-course/day15/grpc/auther"
"gitee.com/infraboard/go-course/day15/grpc/service"
"google.golang.org/grpc"
)
func main() {
conn, err := grpc.Dial(
"localhost:1234",
grpc.WithInsecure(),
grpc.WithPerRPCCredentials(auther.NewClientAuthentication("admin", "123456")),
)
if err != nil {
log.Fatal(err)
}
defer conn.Close()
client := service.NewHelloServiceClient(conn)
req := &service.Request{Value: "hello"}
reply, err := client.Hello(context.Background(), req)
if err != nil {
log.Fatal(err)
}
fmt.Println(reply.GetValue())
// // 客户端需要先调用Channel方法获取返回的流对象
// stream, err := client.Channel(context.Background())
// if err != nil {
// log.Fatal(err)
// }
// // 在客户端我们将发送和接收操作放到两个独立的Goroutine。
// // 首先是向服务端发送数据
// go func() {
// for {
// if err := stream.Send(&service.Request{Value: "bob"}); err != nil {
// log.Fatal(err)
// }
// time.Sleep(time.Second)
// }
// }()
// // 然后在循环中接收服务端返回的数据
// for {
// reply, err := stream.Recv()
// if err != nil {
// if err == io.EOF {
// break
// }
// log.Fatal(err)
// }
// fmt.Println(reply.GetValue())
// }
}
Go
1
https://gitee.com/infraboard/go-course.git
git@gitee.com:infraboard/go-course.git
infraboard
go-course
go-course
19a3f401ff21

搜索帮助