Drop client socket when error #67
Open
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.
This pull request refactors how the WebSocket sink (
ws_tx) is managed in theClientstruct to improve connection state handling and error management. The changes ensure that the sink is only available when the client is connected, and better handle cases where the connection is lost or needs to be re-established.Connection state and sink management:
ws_txfield in theClientstruct from a directSplitSinkto anOption<SplitSink>, allowing it to be explicitly set toNonewhen the client is disconnected.ws_txasSome(sink), reflecting the new optional type.set_wait_reconnectmethod to setws_txtoNonewhen the client transitions out of the connected state, ensuring the sink is dropped when the client disconnects.Error handling and packet transmission:
send_to_clientmethod to check ifws_txisNoneand return aClientNotConnectederror if so, improving error handling when trying to send data to a disconnected client.Message decoding improvements:
BytesMutfrom the message's bytes, removing an unnecessary intermediate variable. [1] [2]