Releases: plotdb/ews
Releases · plotdb/ews
Release list
0.2.2
- fix bug:
dispose()now delivers a final synthetic close event to consumers before detaching handlers. death may be declared while the raw ws is still half-open ( real close event not yet fired ); consumers detached without ever seeing a close kept a staleconnectedstate - e.g., sharedbConnectionthen rejected the nextbindToSocketwithERR_CONNECTION_STATE_TRANSITION_INVALID( "Cannot transition directly from connected to connecting" ), forcing a page reload after reconnect.
0.2.1
0.2.0
- add
dispose(): permanently detach an ews object - unsupervise from its source and remove all handlers it ever installed on any raw websocket, so a discarded ( e.g. scoped ) ews can never leak stale events to its consumer. - track raw websockets we installed listeners on (
_iws), pruning fully-closed ones to avoid blocking GC. - sdb-client: sharedb
Connectionnow survives disconnection - docs ( along with their pending / inflight ops ) are kept across reconnect. on reconnect a fresh scoped socket is bound viabindToSocket; sharedb then resubscribes ( catch-up by doc version ) and resends unacknowledged ops ( deduplicated by src / seq on server ) by itself. no need to recreate sdb-client per reconnect anymore. - sdb-client: a socket declared dead is disposed immediately, so late events from a stale session ( half-open socket revived, buffered close, orphan replies ) can no longer reach sharedb. this fixes orphan-reply crashes in
_handleSubscribeandERR_CONNECTION_STATE_TRANSITION_INVALIDduring reconnect.
0.1.0
- pass close event info (code, reason, wasClean) as
infoobject when firingofflineevent. disconnectnow accepts aninfoobject and forwards it to theofflineevent.- pass
{src: \"browser-offline\"}as info when offline is triggered by browser's offline event.
0.0.20
- use
op batchinstead ofopevent for batching ops, to prevent conceptual atomic transactions such as object moving from being tear apart into string editing, causing rendering issue. - separate sharedb bundle tool from build script to a standalone package.json