Repository navigation
Releases: ably/ably-pubsub-js
Releases · ably/ably-pubsub-js
Release list
v2.29.0
Full Changelog: 2.28.0...2.29.0
What's Changed
- Add
PresenceMessage.memberKey, the key that uniquely identifies a presence member by itsconnectionIdandclientId#2302 - Respond to server
PINGprotocol messages with aPONG, and requestheartbeats=bouncein browsers, React Native and NativeScript. Liveness is now confirmed by the SDK itself rather than by the underlying WebSocket, which can keep answering ping frames while the app is suspended #2307 - Fix IPv6 hosts missing their square brackets in constructed URIs #2300
- Reject annotation publish and delete calls that are missing a
type#2299 - LiveObjects: fail a pending
get()sync wait when the channel entersDETACHED,SUSPENDEDorFAILED, rather than waiting indefinitely #2284 - LiveObjects: suppress update events for no-op diffs, and skip the sync wait when resolving an empty synthetic list #2288
- LiveObjects: report error 92000 with HTTP status 400 rather than 500 #2290
v2.28.0
Full Changelog: 2.27.0...2.28.0
What's Changed
- Roll out e2e encryption of
datapayloads on annotations. They were previously a message type whose publish path deliberately did not apply the channel's encryption (and were documented accordingly), but the reasons for this no longer apply, so there is no reason now not to enable e2e encryption on annotation payloads. #2277
v2.27.0
Full Changelog: 2.26.0...2.27.0
What's Changed
- Fall back to the base transport when a proxy rejects the WebSocket handshake outright, rather than reporting
disconnectedafter exhausting every host #2285 - Move connection resumability decisions from the client to the server:
Connection#id,Connection#keyand a channel'schannelSerialare retained throughSUSPENDED, and reconnection always attempts a resume.Connection#createRecoveryKey()consequently returns a recovery key inSUSPENDED, where it previously returnednull#2273 - Fix a resumed attach advancing the channel's attach serial, which broke the contiguity of
untilAttachhistory with the realtime message stream #2276 - Fix stale presence members surviving when a new presence sync replaces one still in progress #2261
- Expand the docstrings on
Auth,RealtimeChannel,RealtimePresence,RealtimeAnnotationsandRestAnnotationsto cover prerequisites, side effects and failure modes, and link the RESTChannelandPresencemembers to their reference pages #2242 #2243 #2244 #2245 #2282
v2.26.0
What's Changed
- Add
push.updateToken()to update the device's push token on React Native after the underlying push platform rotates it, keeping the device registration in sync with Ably #2267 - Add a
useObjectReact hook for subscribing to LiveObjects state #2259 PathObject.instance()method now returnsundefinedonly if nothing exists at that path. It wraps whatever value resolves there: aLiveMap, aLiveCounter, or a primitive value. A primitive-backedInstanceis read-only: it has noidand exposes the primitive viavalue().
v2.25.0
What's Changed
- Add push notification support for React Native via the new
ably/react-native-pushplugin. Adds an asynchronousclient.getDevice()and deprecates the synchronousclient.device()#2262 - Surface previously silent failures when channel modes are missing:
presence.get()without thepresence_subscribemode andchannel.subscribe()without thesubscribemode now log an error, or throw when the newstrictModeclient option is enabled #2236
v2.24.0
v2.23.0
Full Changelog: 2.22.1...2.23.0
What's Changed
- Allow omitting
channelNamein the React channel hooks to use the nearestChannelProvider#2248 - Fix presence auto-reenter causing "Unable to perform operation on channel" NACKs after reconnecting from a transient disconnect; presence operations are now queued at the channel level until the channel next re-attaches #2241
v2.22.1
v2.22.0
Full Changelog: 2.21.0...2.22.0
What's Changed
- Make
agentchannel option additive in React hooks #2237 - Add missing
RestAnnotation#deletetypings #2218 - Throw on legacy v1
ably/promisesandably/callbacksimports #2227 - Mark v1 callback API as deprecated and throw on v1 callback shapes #2226
- Mark public
ObjectMessage.idand.timestampas optional #2230 - Change
channels#releasesemantics to implicit detach rather than error on unexpected channel state #2190 - Bump
wsto 8.20.1 to resolve security advisory #2225
v2.21.0
Full Changelog: 2.20.0...2.21.0
What's Changed
New features
- Add LiveObjects REST client:
channel.objectis now available on REST channel instances, exposingget()to read object state,publish()to send object operations, andgenerateObjectId()to create object IDs on the client side for atomic batch operations with cross-references between newly created objects #2109