feat(realtime): add explicit REST API call for broadcast #1256
+357
−7
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 ports the feature from supabase-js#1751 to add explicit REST API support for broadcast messages in the Python realtime library.
What changed?
http_send()
: Added a new public method toAsyncRealtimeChannel
that explicitly uses the REST API for broadcast messages, regardless of WebSocket connection statesend_broadcast()
is called while not connected, alerting users about the implicit behaviorhttpx[http2]
to enable HTTP requests for the REST API callshttp_send()
functionalityWhy was this change needed?
The current approach can lead users to use broadcast without understanding the underlying mechanism. By providing an explicit
http_send()
method, users have more control over how their messages are delivered:🔄 Breaking changes
send_broadcast()
while not connectedhttp_send()
for explicit REST delivery📋 Checklist
<type>(<scope>): <description>
🧪 Test plan
The PR includes comprehensive test coverage:
http_send()
with and without access tokenssend_broadcast()
All tests pass:
pytest tests/test_http_send.py -v
📚 Related
🤖 Generated with Claude Code