-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add opt-out of implicit attach when subscribing #206
Conversation
a880528
to
1d6243b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fine by me
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like this approach
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Add an
attachOnSubscribe
channel 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
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.