fix(realtime): ensure WebSocket connections are properly closed in teardown #1841
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.
🔍 Description
Fixed a critical memory leak in RealtimeClient._teardownConnection() where WebSocket connections were not properly closed before being nullified, causing connections to remain open in memory indefinitely.
What changed?
Enhanced the _teardownConnection() method in
packages/core/realtime-js/src/RealtimeClient.tsto:Before:
After:
Why was this change needed?
The original implementation would set WebSocket event handlers to
nulland nullify the connection reference without first ensuring the WebSocket was properly closed. This caused:Closes #1840
🔄 Breaking changes
📋 Checklist
<type>(<scope>): <description>npx nx formatto ensure consistent code formatting📝 Additional notes
Technical details:
Testing: