What's Changed
- Add the
MESSAGE_SUBSCRIBEchannel mode, which replacesSUBSCRIBE.SUBSCRIBEis still accepted inChannelOptions.modesas a synonym, butRealtimeChannel.modesnow reports the granted mode asmessage_subscriberather thansubscribe#2317 - Deprecate calling
channels.release()on a channel that is notinitialized,detachedorfailed. The channel is still detached and released, but a deprecation warning is now logged. Calldetach()and wait for it to complete before releasing the channel #2322 - Throw a descriptive error when
useAbly,useChannelorusePresenceis called outside an<AblyProvider>, rather than an opaqueTypeError#2316 - Fix a
detachedchannel re-enteringattachedon an unsolicitedATTACHEDmessage. It now sends aDETACHand staysdetached#2315 - Fix REST token renewal retrying with the expired
Authorizationheader, and without limit. The retry now carries the renewed token and runs once #2303 - Omit
nullmessage fields from the wire payload rather than sending them asnull, and no longer encrypt a message with nodata#2301 - Fix
ClientOptions.clientIdrejectingundefinedat runtime andnullin the types #2312 - Store the default
authMethodofGETinauth.authOptionswhen it is omitted #2313 - Include the
clientIdin the error reported when presence auto re-enter fails #2314