Repository navigation
Conversation
Contributor
PR checklist ✅All required conditions are satisfied:
🎉 Great job! This PR is ready for review. |
Contributor
SDK Size Comparison 📏
|
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.



Goal
Add the v2 websocket connection, the second step of moving the socket to v2. It sits behind an internal flag that is off by default, so the socket still connects on v1 until a later PR flips it.
Part of AND-1637
Implementation
ChatClient.Builder.useV2WebSocket(enabled)(@InternalStreamChatApi) makes the socket connect to/api/v2/connectand parse its frames withV2EventParser.custom, thechatproduct) instead of the URL and Authorization header. Reconnections send the user id only, as on v1. Anonymous users connect with the anonymous auth type and a placeholder token.health.checkframe for the connection on v2, and the echoed connection event on v1, as before.Testing
V2SocketTestcovers the v2 URL without an Authorization header, the auth frame on first connection, reconnection and for anonymous users, the keepalive frame, frame parsing, and the socket staying on v1 without the flag.CurrentUserFetcherTestscovers fetching the own user when the v2 socket connects.