Add opt-out of implicit attach when subscribing - #206
Conversation
a880528 to
1d6243b
Compare
AndyTWF
left a comment
There was a problem hiding this comment.
LGTM
We should consider whether we want this to be default behaviour in future major SDK versions.
Add an attachOnSubscribe channel option, which, if set to false, allows users to opt out of the implicit attach that’s triggered by `subscribe`-ing to channel or presence messages. The Chat SDK has decided that in its API, subscribing to a room’s messages or presence messages should not trigger a channel attach operation (see [1] for decision record). The JS Chat SDK uses private ably-js API to, essentially, call `subscribe` without triggering an implicit attach. For the Swift and Kotlin SDKs, we’d like to avoid this, hence this new API. I’m not sure what’s the better approach out of adding a new channel option (I don’t love the fact that we just ignore the user-provided “on attach” callback) or adding a new method called something like `subscribeWithoutAttach` (which, given that it’d be part of the public API, might be quite confusing for users when it appears in their IDE autocomplete or whatever). Resolves #202. [1] https://ably.atlassian.net/wiki/spaces/CHA/pages/3156705308/CHADR-038+API+Design+Separating+Listeners+from+Lifecycle
1d6243b to
ba79aba
Compare
|
Okay noob question, why don't we just create plain channel when subscribe is called. This shouldn't send attach message and just create a room instead |
The aim of |
I would endorse this, never liked implicit attach. (especially never liked the asymmetry of 'implicit attach on first subscribe but no implicit detach on last unsubscribe') |
In Chat we took the approach of having |
Maybe do attach when user provides this callback and do not do by default if not? |
That'd be a breaking API change — the current expectation is that if you call |
Add opt-out of implicit attach when subscribing
Add opt-out of implicit attach when subscribing
Add an
attachOnSubscribechannel option, which, if set to false, allows users to opt out of the implicit attach that’s triggered bysubscribe-ing to channel or presence messages.The Chat SDK has decided that in its API, subscribing to a room’s messages or presence messages should not trigger a channel attach operation (see decision record). The JS Chat SDK uses private ably-js API to, essentially, call
subscribewithout triggering an implicit attach. For the Swift and Kotlin SDKs, we’d like to avoid this, hence this new API.I’m not sure what’s the better approach out of adding a new channel option (I don’t love the fact that we just ignore the user-provided “on attach” callback) or adding a new method called something like
subscribeWithoutAttach(which, given that it’d be part of the public API, might be quite confusing for users when it appears in their IDE autocomplete or whatever).Resolves #202.