| syntax = "proto3"; |
| |
| package experiment; |
| |
| import "google/protobuf/empty.proto"; |
| |
| message AsyncEvent { |
| int32 seq = 1; |
| enum EventType { |
| BIG_BANG = 0; |
| SMALL_BANG = 1; |
| NO_BANG = 2; |
| } |
| EventType type = 2; |
| string details = 3; |
| } |
| |
| message Packet { |
| int32 source = 1; |
| bytes content = 2; |
| } |
| message Echo { |
| string msg = 1; |
| float delay = 2; |
| } |
| |
| service ExperimentalService { |
| |
| rpc GetEcho(Echo) returns(Echo); |
| |
| // For server to send async stream to client |
| rpc ReceiveStreamedEvents(google.protobuf.Empty) |
| returns(stream AsyncEvent); |
| |
| // For server to send async packets to client |
| rpc ReceivePackets(google.protobuf.Empty) returns(stream Packet); |
| |
| // For client to send async packets to server |
| rpc SendPackets(stream Packet) returns(google.protobuf.Empty); |
| |
| } |