I have to send a stream of messages to a gRPC server, but I also have to send a significant amount of metadata about the stream. Is there a way to define the metadata message and make it part of the interface contract between the client and the server? As far as I can tell, it looks like marshaling another message into metadata is completely outside the interface definition in my .proto file.
Really, I'd love for gRPC to allow streaming calls to have two parameters like:
service DataServer {
rpc AddData(DataScope, stream MyData) returns (Reply) {}
}
Is there a right, or at least a generally accepted way to approach this?