-
Notifications
You must be signed in to change notification settings - Fork 509
Open
Description
Draft1: Support streaming api like this: https://grpc.io/docs/languages/go/basics/#server-side-streaming-rpc。
proto.tars:
module ServerTest {
interface RPCServant { // RPC API
string Echo(string in);
};
stream PushServant { // Stream API
string Message(string in);
};
};
Client:
streamCli := &ServerTest.PushServant{}
comm.StringToProxy("App.ServerTest.PushServantObj", streamCli)
msg1, err := streamCli.RecvMessage() // block if no message
msg2, err = streamCli.RecvMessage() // block if no message
err := streamCli.SendMessage("abc") // block if no message
Server Start:
ServerTest.AddStreamSevant("App.ServerTest.PushServantObj", serverImp)
Server Implement:
type serverImp struct{}
func (s *serverImp) Messsage(ctx context.Context, stream ServerTest.MesssageStream) error {
for {
msg, err := stream.RecvMessage() // block if no message
err = stream.SendMessage("hello") // block if no message
}
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels