grpclib/docs/diagram.txt

36 lines
1.1 KiB
Plaintext

GO: https://swimlanes.io
Note Client: `send_request` *[auto]*
Client -> Server: `HEADERS` frame
Note Server: request accepted
Note Client: `send_message`
Client -> Server: `DATA` ... `DATA` frames
Note Server:
`recv_message`
Note Client Server:
Now you have to end stream from the client-side, and you can do this in two
ways:
1. `send_message(message, end=True)` - last `DATA` frame will contain
`END_STREAM` flag
2. `end()` - one extra frame will be sent, as shown below. It is better to
avoid this way if possible.
Note Client: `end` *(optional, read note above)*
Client -> Server: `HEADERS[END_STREAM]` frame
Note Server: `send_initial_metadata` *[auto]* You can send initial metadata
even before receiving messages from the client. RPC success or failure in gRPC
protocol is indicated in trailers.
Client <- Server: `HEADERS` frame
Note Client: `recv_initial_metadata` *[auto]*
Note Server: `send_message`
Client <- Server: `DATA` ... `DATA` frames
Note Client: `recv_message`
Note Server: `send_trailing_metadata` *[auto]*
Client <- Server: `HEADERS` frame as trailers
Note Client: `recv_trailing_metadata` *[auto]*