[AIO] No client side ping-pong
- Dominant language
- Python
- Stars
- 421
- Forks
- 90
- PR merge metrics
- No merged PRs in 30d
Description
IRC servers PING clients if the TCP connection is idle to ensure dead streams are dropped. On the other hand clients need to do the same to detect the same issue if they don't get anything from servers for a good while.
Currently no client side ping is implemented and if the socket stalls it will only be detected by the TCP stack when you try to send something and you immediately get disconnected. This is not ideal when you want to stay connected.
I have a local implementation for the AIO client currently implemented as a Protocol: https://github.com/hifi/heisenbridge/blob/master/heisenbridge/irc.py#L12
Let me know if this can be worked upstream somehow. It has been field tested by now that it seems to do about the right thing.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the AIO client context described in the issue and the referenced Protocol implementation at heisenbridge/irc.py#L12. Determine where client-side keepalive behavior belongs and how it should detect an idle or stalled socket. Done means the AIO client sends periodic pings and detects an unresponsive server without waiting for an application send.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100