asWebsocketConnection
suspend fun HttpClient.asWebsocketConnection(baseUrl: String, env: KsrpcEnvironment<String>): Connection<String>
Turn an HttpClient into a websocket based Connection for a specified baseUrl.
This is functionally equivalent to baseUrl.toKsrpcUri().connect(env).
Samples
import com.monkopedia.ksrpc.channels.connect
import com.monkopedia.ksrpc.ksrpcEnvironment
import com.monkopedia.ksrpc.ktor.websocket.asWebsocketConnection
import com.monkopedia.ksrpc.ktor.websocket.serveWebsocket
import com.monkopedia.ksrpc.toStub
import io.ktor.client.HttpClient
import io.ktor.client.plugins.websocket.WebSockets
import io.ktor.server.application.install
import io.ktor.server.engine.embeddedServer
import io.ktor.server.netty.Netty
import io.ktor.server.routing.routing
import io.ktor.server.websocket.WebSockets as ServerWebSockets
fun main() {
//sampleStart
val env = ksrpcEnvironment { }
val httpClient = HttpClient {
install(WebSockets)
}
// Create a bidirectional WebSocket connection.
val connection = httpClient.asWebsocketConnection(
"ws://localhost:8080/ws",
env
)
// Use connect<Host, Client> to set up both directions at once,
// or use defaultChannel() for client-only access.
val stub = connection.defaultChannel().toStub<GreetingService, String>()
val greeting = stub.greet("world")
//sampleEnd
}