title | section | index |
---|---|---|
Feature prioritisation |
client-lib-development-guide |
5 |
Whilst all officially supported Ably client libraries support all features defined in the specification, we recommend an approach that focuses on the most commonly used features first.
Realtime client libraries typically depend on REST client library features so our recommendation for Realtime client library development is to develop the REST client library first.
- Basic authentication – see basic auth within Auth spec
- Channels & publishing messages – see Channels spec, #publish method of Channel spec, Message object spec, Channel object spec and Channels object spec
- Channel history – see Channel spec
- Presence and presence history – see Presence spec and Presence message object spec
- PagedResults – see PaginatedResource spec and all history requests for messages and presence above
- Token authentication and automatic token renewal – see Auth spec
- Message encoding and decoding + MessagePack support – see Message encoder spec and modify your test suite to run all tests with MessagePack and JSON support
- Ably client settings & host fallback when datacenter is unavailable – see Client spec
- Encryption & decryption – see the Message spec and message encoding spec
- Stats – see App Stats spec
- API compatibility – ensure remaining specifications are met as far as possible using idiomatic patterns common to the language being used
- Update the client library API documentation
The complete feature specification for REST libraries is available at specification.
- REST client library – assumes that complete feature specification for REST libraries has been implemented and is available to this new realtime client library.
- Simple realtime connection over WebSockets with JSON & MessagePack support – see #initialization, #connect and #close within connection spec and ProtocolMessage object spec
- Attach, detach, publish and subscribe for channels – see Channel spec and channels object spec
- Message encoding and encryption on realtime channels – see Message spec
- Presence subscriptions, enter, update and leave – see #enter, #update, #leave, #subscribe and #unsubscribe of Presence spec
- Presence member map – see get and sync specs within the Presence spec
- Connection management – see connection failure section of the Connection failure spec
- Connection resume – see resume section of the Connection failure spec
- Async operations for presence, message history and stats – see Message history spec, Presence history spec and Stats spec
- Channel and presence recovery – see recovery and state change specs within Channel and recovery and state change specs within Presence
- Explicit connection recovery – see connection recovery section of the Connection spec
- Host fallback – see fallback host section of the Connection failure spec
- API compatibility – ensure remaining specifications are met as far as possible using idiomatic patterns common to the language being used
- Update the client library API documentation