Connections are erroneously timed out if they are too active to trigger a keepalive ping from server.
If you open a connection to rizon and send messages too frequently to trigger a ping check from the server, then your connection will be timed out.
This is simple to test:
- connect to rizon
- join a channel
- send a periodic message. I used 30 seconds as my period.
After about 20 minutes you'll get timed out. Notice that you never got any other pings besides the one used to establish the connection.
This can be mitigated by pinging the server manually, but this behavior is not what the RFC describes and feels like a bug. A connection that is sending messages should not be timed out.