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
}