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:
@@ -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
@@ -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")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user