Merge commit '0f6aab9da6fe982218a01f4a5b896e65fcced437' as 'third_party/flatbuffers'
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
module github.com/google/flatbuffers/grpc/examples/go/greeter/client
|
||||
|
||||
go 1.15
|
||||
|
||||
replace github.com/google/flatbuffers/grpc/examples/go/greeter/models v0.0.0 => ../models
|
||||
|
||||
require (
|
||||
github.com/google/flatbuffers v2.0.8+incompatible
|
||||
github.com/google/flatbuffers/grpc/examples/go/greeter/models v0.0.0
|
||||
google.golang.org/grpc v1.56.3
|
||||
)
|
||||
@@ -0,0 +1,78 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
flatbuffers "github.com/google/flatbuffers/go"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/credentials/insecure"
|
||||
|
||||
models "github.com/google/flatbuffers/grpc/examples/go/greeter/models"
|
||||
)
|
||||
|
||||
var (
|
||||
addr = "3000"
|
||||
name = flag.String("name", "Flatbuffers", "name to be sent to server :D")
|
||||
)
|
||||
|
||||
func printSayHello(client models.GreeterClient, name string) {
|
||||
log.Printf("Name to be sent (%s)", name)
|
||||
b := flatbuffers.NewBuilder(0)
|
||||
i := b.CreateString(name)
|
||||
models.HelloRequestStart(b)
|
||||
models.HelloRequestAddName(b, i)
|
||||
b.Finish(models.HelloRequestEnd(b))
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
defer cancel()
|
||||
request, err := client.SayHello(ctx, b, grpc.CallContentSubtype("flatbuffers"))
|
||||
if err != nil {
|
||||
log.Fatalf("%v.SayHello(_) = _, %v: ", client, err)
|
||||
}
|
||||
log.Printf("server said %q", request.Message())
|
||||
}
|
||||
|
||||
func printSayManyHello(client models.GreeterClient, name string) {
|
||||
log.Printf("Name to be sent (%s)", name)
|
||||
b := flatbuffers.NewBuilder(0)
|
||||
i := b.CreateString(name)
|
||||
models.HelloRequestStart(b)
|
||||
models.HelloRequestAddName(b, i)
|
||||
b.Finish(models.HelloRequestEnd(b))
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
defer cancel()
|
||||
stream, err := client.SayManyHellos(ctx, b, grpc.CallContentSubtype("flatbuffers"))
|
||||
if err != nil {
|
||||
log.Fatalf("%v.SayManyHellos(_) = _, %v", client, err)
|
||||
}
|
||||
for {
|
||||
request, err := stream.Recv()
|
||||
if err == io.EOF {
|
||||
break
|
||||
}
|
||||
if err != nil {
|
||||
log.Fatalf("%v.SayManyHellos(_) = _, %v", client, err)
|
||||
}
|
||||
log.Printf("server said %q", request.Message())
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
conn, err := grpc.Dial(fmt.Sprintf("localhost:%d", 3000),
|
||||
grpc.WithTransportCredentials(insecure.NewCredentials()),
|
||||
grpc.WithDefaultCallOptions(grpc.ForceCodec(flatbuffers.FlatbuffersCodec{})))
|
||||
if err != nil {
|
||||
log.Fatalf("fail to dial: %v", err)
|
||||
}
|
||||
defer conn.Close()
|
||||
client := models.NewGreeterClient(conn)
|
||||
printSayHello(client, *name)
|
||||
printSayManyHello(client, *name)
|
||||
}
|
||||
Reference in New Issue
Block a user