Skip to content

Commit 7db45b1

Browse files
authored
Merge pull request #333 from ably/PUB-1041/object-sync
[PUB-1041] OBJECT_SYNC spec
2 parents 64dbd47 + 7ad6bca commit 7db45b1

2 files changed

Lines changed: 337 additions & 13 deletions

File tree

src/features.md

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1265,11 +1265,12 @@ as it is useful as a reference and also needs to be kept up to date*
12651265
string it should be encoded to binary using UTF-8 before being
12661266
passed as base argument of the `VCDiffDecoder.decode` method.
12671267
- `(PC5)` A plugin provided with the `PluginType` enum key value of
1268-
`Objects` should provide the [RealtimeObjects](#RTO1) feature
1269-
functionality for realtime channels ([RTL27](#RTL27)). The plugin
1270-
object itself is not expected to provide a public API. The type of the
1271-
plugin object, and how it enables the Objects feature for a realtime
1272-
channel, are left for individual implementations to decide.
1268+
`Objects` should provide the
1269+
[RealtimeObjects](../objects-features#RTO1) feature functionality for
1270+
realtime channels ([RTL27](#RTL27)). The plugin object itself is not
1271+
expected to provide a public API. The type of the plugin object, and
1272+
how it enables the Objects feature for a realtime channel, are left
1273+
for individual implementations to decide.
12731274
- `(PC4)` A client library is allowed to accept plugins other than those
12741275
specified in this specification, through the use of additional
12751276
`ClientOptions.plugins` keys defined by that library. The library is
@@ -2217,11 +2218,14 @@ makes extensive use of goroutines and channels.
22172218
- `(RTL23)` `RealtimeChannel#name` attribute is a string containing the
22182219
channel’s name
22192220
- `(RTL1)` As soon as a `RealtimeChannel` becomes attached, all incoming
2220-
messages and presence messages (where ‘incoming’ is defined as
2221-
‘received from Ably over the realtime transport’) are processed and
2222-
emitted where applicable. `PRESENCE` and `SYNC` messages are passed to
2223-
the `RealtimePresence` object ensuring it maintains a map of current
2224-
members on a channel in realtime
2221+
messages, presence messages and object messages (where ‘incoming’ is
2222+
defined as ‘received from Ably over the realtime transport’) are
2223+
processed and emitted where applicable. `PRESENCE` and `SYNC` messages
2224+
are passed to the `RealtimePresence` object ensuring it maintains a
2225+
map of current members on a channel in realtime. `OBJECT` and
2226+
`OBJECT_SYNC` messages are passed to the `RealtimeObjects` object
2227+
ensuring it maintains an up-to-date representation of objects on a
2228+
channel in realtime
22252229
- `(RTL2)` The `RealtimeChannel` implements `EventEmitter` and emits
22262230
`ChannelEvent` events, where a `ChannelEvent` is either a
22272231
`ChannelState` or `UPDATE`, and a `ChannelState` is either
@@ -2614,7 +2618,7 @@ makes extensive use of goroutines and channels.
26142618
- `(RTL9a)` Returns the `RealtimePresence` object for this channel
26152619
- `(RTL27)` `RealtimeChannel#objects` attribute:
26162620
- `(RTL27a)` Returns the `RealtimeObjects` object for this channel
2617-
[RTO1](#RTO1)
2621+
[RTO1](../objects-features#RTO1)
26182622
- `(RTL27b)` It is a programmer error to access this property without
26192623
first providing the `Objects` plugin ([PC5](#PC5)) in the client
26202624
options. This programmer error should be handled in an idiomatic
@@ -3190,8 +3194,9 @@ makes extensive use of goroutines and channels.
31903194

31913195
### RealtimeObjects
31923196

3193-
Reserved for `RealtimeObjects` feature specification. Reserved spec
3194-
points: `RTO`, `RTLO`, `RTLC`, `RTLM`
3197+
Reserved for `RealtimeObjects` feature specification, see
3198+
[objects-features](../objects-features). Reserved spec points: `RTO`,
3199+
`RTLO`, `RTLC`, `RTLM`
31953200

31963201
### RealtimeAnnotations
31973202

0 commit comments

Comments
 (0)