Skip to content

Feature Request: Keepalive Support in ttrpc #203

@aojea

Description

@aojea

This feature request proposes the implementation of a keepalive mechanism in ttrpc based on the HTTP/2 PING frame as defined in RFC 7540, Section 6.7 to distinguish between a slow remote procedure call (RPC) and a dead or unresponsive client or server. The keepalive feature will allow clients and servers to periodically check the health of the connection.

The ttrpc protocol, as described in PROTOCOL.md, will be extended with two new message types:

  • PING (0x04): A message sent by the client to the server to check if the connection is alive.
  • PONG (0x05): A message sent by the server in response to a PING, confirming that the connection is active.

Both server and client will be able to set this functionality with the following two options (based on golang http2 implementation):

  • ReadIdleTimeout: The timeout after which a health check using a PING frame will be sent if no data frames are received on the connection (0 means disabled)
  • PingTimeout: The timeout after which the connection will be closed if a response to a PING is not received (0 means disabled)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions