Add pong delegate support for websoket connection and resource #2156
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add ability to call delegate on pong frame reception. This is useful for
closing stalled connections. Websocket server can send ping frames periodically and check for pong back from clients. On pong reception server can reset some counters attached to websocket connection via setUserData. Also server periodically checks for counter not reaching some minimum value for every connection and close connections that do not reply to ping request assuming them as stalled. Connection may stall if some hard network problem occurs and there is no proper way to close client connection nor by websocket protocol or tcp.
Remove websocket state change before calling close() in
WebsocketConnection destructor. Without this change if connection was
removed by WebsocketRecource, onDisconnect delegate for Websocket
connection will not run.