grpc-dotnet icon indicating copy to clipboard operation
grpc-dotnet copied to clipboard

Send Empty object as Data of length and not RST_STREAM

Open HighOnLemonz opened this issue 1 year ago • 1 comments

Hi, I have a proto file with the following rpc: rpc MethodToCall(ObjectToReceive) returns (Empty); where Empty is declared in the proto file as: message Empty {}.

After using Grpc.Tools to generate the files I have override this method as follows: public override Task<Empty> MethodToCall(ObjectToReceive request, ServerCallContext context) { return Task.FromResult(new Empty()); }

In wireshark the response looks like this: image

Problem is that what I need is the response to have an actual Data field of length 0 as follows: image where the Data is: image

I am using .Net Framework 4.7.2. Can I force the library to send the response like this or it will always decide not to send irrelevant data.

Thank you

HighOnLemonz avatar Nov 06 '24 17:11 HighOnLemonz

I don't know why you're seeing a RST_STREAM. If a request sends a response message, even an empty one, then the response should end with a HEADERS frame with END_STREAM set.

JamesNK avatar Dec 07 '24 06:12 JamesNK