handleWebsocketConnection

suspend fun <T, OBJECTS_IN, OBJECTS_OUT> handleWebsocketConnection(deSerializer: ObjectDeSerializer, rawIn: <Error class: unknown class><String>, rawOut: <Error class: unknown class><String>, serializerIn: <Error class: unknown class><OBJECTS_IN>, serializerOut: <Error class: unknown class><OBJECTS_OUT>, service: T, function: suspend T.(<Error class: unknown class><OBJECTS_IN>, <Error class: unknown class><OBJECTS_OUT>) -> Unit)

Convenience function for cases were the raw channels work with strings. See the overloaded method for details.


suspend fun <T, RAW_IN, RAW_OUT, OBJECTS_IN, OBJECTS_OUT> handleWebsocketConnection(deSerializer: ObjectDeSerializer, rawIn: <Error class: unknown class><RAW_IN>, rawInToText: (RAW_IN) -> String?, rawOut: <Error class: unknown class><RAW_OUT>, rawOutFromText: (String) -> RAW_OUT, serializerIn: <Error class: unknown class><OBJECTS_IN>, serializerOut: <Error class: unknown class><OBJECTS_OUT>, service: T, function: suspend T.(<Error class: unknown class><OBJECTS_IN>, <Error class: unknown class><OBJECTS_OUT>) -> Unit)

Reads JSON-RPC calls from rawIn, deserializes them and forwards them in form of a channel to function. Additionally function also receives a SendChannel, from which objects are read, serialized and sent to the client in the form of JSON-RPC calls.

Parameters

deSerializer

used to (de-)serialize objects

rawIn

a channel that supplies serialized JSON-RPC calls

rawInToText

a function to convert the objects supplied by rawIn to a String. The function may return null to indicate that the message should be ignored

rawOut

a channel for outgoing messages

rawOutFromText

a function to convert the JSON-string to an object to be sent via rawOut

service

the receiver to be used when calling function

function

the function to delegate data processing to