feat(realtime): add presence-enabled flag to join push #736
+96
−2
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
This PR adds support for the presence enabled flag in the realtime join push. When a presence callback exists on a channel, the presence enabled flag is automatically set to true during the subscription process.
Changes
RealtimeChannelV2.subscribe()
to setconfig.presence.enabled = true
when presence callbacks existcallbackManager.callbacks.contains(where: { $0.isPresence })
to detect presence callbackstestPresenceEnabledDuringSubscribe()
that verifies the presence enabled flag is correctly set during subscriptionTest Coverage
The new test
testPresenceEnabledDuringSubscribe()
inTests/RealtimeTests/RealtimeChannelTests.swift
:FakeWebSocket
to simulate real WebSocket communicationpresence.enabled
flag is set totrue
in thephx_join
payload when presence callbacks existTechnical Details
The implementation automatically enables presence when:
onPresenceChange()
This ensures that presence functionality is only enabled when actually needed, optimizing server-side processing and network traffic.
Testing
All existing tests pass, and the new test validates the core functionality:
swift test --filter RealtimeChannelTests
Related Issues
Closes #CLIBS-219