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 your feature request related to a problem? Please describe.
Websocket sessions could reach thousands when thousands of users have the client app open.
Yet, the only option to reduce that is to establish a ws connection in each invocation or establish
a ws connection that lives with the lifecycle of the app.
Don't get me wrong, I want long lived ws connection for communication between services but
not for communication between user client applications and a service.
Describe the solution you'd like
I don't exactly know if websocket sessions are very light or not for thousands of simultaneous long-lived
connections to be a problem but if so, there should be a way around that.
Maybe supporting different kinds of RemoteServices were one has instance-per-connection policy and
another is invocation-per-connection policy?
Describe alternatives you've considered
If kotlin-rpc was aimed to service-to-service communication, I think a gRPC kotlin wrapper would be a better choice.
On the other hand (if kotlin-rpc was aimed to client-to-service communication), I think the only alternative would
be Ktor resources (yuk!)
Additional context
I am creating a KMP project were the client app and the server app are both in Kotlin and I am searching for an
elegant more "natural" way of communication between the two.
The text was updated successfully, but these errors were encountered:
Hi, @lsafer-meemer! Thank you for the feature request. We are thinking about protocol enhancements, and we'll take this into consideration during the design
Or maybe keep the websocket connection open as long as one of the registered services are invoked. After an idle period of ( for example ) 5 seconds close the websocket and create a new websocket when there is another invocation of a registered service?
But to the be brutally honest, I have no idea how resource intensive it is to keep thousands of ( maybe mostly idle ) simultaneous websocket connections alive. Ktor is kinda great, so maybe they figured something smart out :)
I haven't found a way to detect when the underlying websocket session has closed. For example trying to add webSocketSession.outgoing.invokeOnClose {} throws an IllegalStateException saying that there already is another handler registered.
Is your feature request related to a problem? Please describe.
Websocket sessions could reach thousands when thousands of users have the client app open.
Yet, the only option to reduce that is to establish a ws connection in each invocation or establish
a ws connection that lives with the lifecycle of the app.
Describe the solution you'd like
I don't exactly know if websocket sessions are very light or not for thousands of simultaneous long-lived
connections to be a problem but if so, there should be a way around that.
Maybe supporting different kinds of
RemoteService
s were one has instance-per-connection policy andanother is invocation-per-connection policy?
Describe alternatives you've considered
If
kotlin-rpc
was aimed to service-to-service communication, I think agRPC
kotlin wrapper would be a better choice.On the other hand (if
kotlin-rpc
was aimed to client-to-service communication), I think the only alternative wouldbe
Ktor
resources (yuk!)Additional context
I am creating a KMP project were the client app and the server app are both in
Kotlin
and I am searching for anelegant more "natural" way of communication between the two.
The text was updated successfully, but these errors were encountered: