You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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!
The text was updated successfully, but these errors were encountered:
vmalykhin
changed the title
Provide rSocket path or some id in the reconnectable and interceptors blocks
Provide rSocket path or some id in the reconnectable and interceptors callbacks
Nov 23, 2024
Hey, unfortunately, there is no easy way currently.
Do you think, that may be alternatively adding ability to configure reconnectable logic on call size will help here?
E.g something like:
ktorClient.rSocket {
reconnectable { ... }
}
Currently, reconnecting functionality was implemented rather ad-hoc and needs redesign and should be aligned with potential client-load-balancing feature.
Does RSocket URL (path) have public access somewhere?
Not, but there are related issues: #187 and #231. There is no design for this at this moment
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 thereconnectable {...}
block?Android use case:
Ktor client creates a few instances of RSockets by
ktorClient.rSocket(host, path, secure = true)
with differentpath
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:
Also looks like there is no relation between initial RSocket created by
ktorClient.rSocket(...)
and rSocket object received ininterceptors -> forRequester
.Does RSocket URL (path) have public access somewhere?
Thanks in advance!
The text was updated successfully, but these errors were encountered: