Skip to content

Provide rSocket path or some id in the reconnectable and interceptors callbacks #282

@vmalykhin

Description

@vmalykhin

Is there an easy way to know the current RSocket instance by path (url or any other tag like id or hash) when processing errors in the reconnectable {...} block?

Android use case:
Ktor client creates a few instances of RSockets by ktorClient.rSocket(host, path, secure = true)with different path and keeps these sockets alive during app session.
Then after the disconnect/reconnect depending on business logic, the client might want to reconnect some socket instance immediately, but other sockets should be reconnected a bit later to prevent network overloading (say, 5-10 seconds later) or should not be reconnected at all.

I bit of pseudo code:

reconnectable { cause, attempt -> // no way to know on what exact rSocket instance it called?
  if (myInternalLogicHelper.isHighPriorityInstance(rSocket)) {
    true // reconnects now
  } else {
    delay(5000) // delay before next attempt
    true // or even `false` to not reconnect at all after error
  }
}

Also looks like there is no relation between initial RSocket created by ktorClient.rSocket(...) and rSocket object received in  interceptors -> forRequester.
Does RSocket URL (path) have public access somewhere?

Thanks in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions