0.19.0-rc6 (May 16, 2017)
This versions adds a new DataChannel abstraction, as well as completely rewritten internal data channel abstraction layer. Data channels have earlier been possible to use through
rtcPeer.createChannel, but they had a lot of shortcomings. The internal handlings of data channels was also pretty poor in places, e.g. transmitting files would frequently lock up if trying to send too many at the same time.
In general we found that working with cross browser WebRTC data channels is hard. There are a lot of hidden issues, and the API:s are a bit too low level for typical application development.
This new implementation hides a lot of complexity and differences in browser behaviour. It adds support for more types and larger messages, while mainting low latency for small messages. It also namespaces channels, making it possible for multiple
RtcComponents to use negotiated channels without risk of collision. It also makes the connection more robust, by keeping channels alive, and detecting when they stop sending or receiving messages.
[API CHANGE] Added
DataChannel, accessed through
rtcComponent.rtcComponentReceivedChannel. This replaces the old API.
[API CHANGE] Removed
[API CHANGE] Removed
rtcComponent.rtcComponentReceivedMessage, since the component messaging is no longer enough of an improvement on top of plain channels.
- Removed workaround for old Chrome SDP creation bug that was fixed in a patch version.
- Fixed a bug where conference members would not get information that they were removed from a conference due to inactivity, which would cause them to hang.
- Slight tweak that in some cases speeds up the speed at which conference members receive updates about the conference state.
- Simplified the mechanism for adding and removing clients in a conference, making the overall signaling more robust.
- Improved the filtering of volume levels for conference participants, which makes the automatic switcher modes a lot smoother.
- Build has been upgraded to Webpack 2, which reduces the library size by about 30kb before gzip.
- Moved some
dependencies back to
package.json. Since we ship a compiled library they should not be downloaded when using the library as a dependency.