代码拉取完成,页面将自动刷新
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())
// }
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。