Add streaming API for datachannel messages and state changes. #91
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 change adds a streaming API to the
RTCDataChannel
. AddsstateChangeStream
andmessageStream
to theRTCDataChannel
class, which are broadcast streams that emit state changes and messages, just as would be passed to theonDataChannelState
andonMessage
handlers. This allows for easily attaching multiple listeners to these events, whereas previously the class could only support one handler for each.Adds functionality from my own wrapper utility class:
Which will no longer be necessary after this change.
Also updates the datachannel example code to show usage.
This change has been tested within our own app and will not break the existing API, as it's only adding new properties to the class. It should not cause any performance issues, since broadcast streams don't buffer their events and only deliver them to active listeners on demand. If nothing is listening, events are simply discarded.