1
0
mirror of https://github.com/taigrr/wasm-experiments synced 2025-01-18 04:03:21 -08:00

Add server side streaming test

This commit is contained in:
Johan Brandhorst
2018-06-06 09:19:48 +01:00
parent 2392bc267d
commit b98654eb67
6 changed files with 197 additions and 6 deletions

View File

@@ -2,6 +2,8 @@ package backend
import (
"context"
"strconv"
"time"
"google.golang.org/genproto/googleapis/rpc/errdetails"
"google.golang.org/grpc/codes"
@@ -40,5 +42,15 @@ func (b Backend) GetUser(ctx context.Context, req *server.GetUserRequest) (*serv
}
func (b Backend) GetUsers(req *server.GetUsersRequest, srv server.Backend_GetUsersServer) error {
for index := 0; index < int(req.GetNumUsers()); index++ {
err := srv.Send(&server.User{
Id: strconv.Itoa(index),
})
if err != nil {
return err
}
time.Sleep(time.Second)
}
return nil
}

File diff suppressed because one or more lines are too long

View File

@@ -3,6 +3,7 @@ package main
import (
"context"
"fmt"
"io"
_ "google.golang.org/genproto/googleapis/rpc/errdetails"
"google.golang.org/grpc/status"
@@ -39,4 +40,27 @@ func main() {
} else {
fmt.Println(resp.GetId())
}
srv, err := client.GetUsers(context.Background(), &server.GetUsersRequest{
NumUsers: 3,
})
if err != nil {
st := status.Convert(err)
fmt.Println(st.Code(), st.Message(), st.Details())
} else {
for {
user, err := srv.Recv()
if err != nil {
if err != io.EOF {
st := status.Convert(err)
fmt.Println(st.Code(), st.Message(), st.Details())
}
break
}
fmt.Println(user.GetId())
}
}
fmt.Println("finished")
}