Kotlin Coroutines - предотвращение закрытия исходящего канала при обрыве сети [Websockets]
Я использую Ktor и веб-сокеты и заметил, что исходящий канал мгновенно закрывается при разрыве соединения.
Есть ли способ предотвратить это? Я подключаюсь к веб-сокету следующим образом:
fun connect(listener: MyListener) = launch {
try {
client.wss(
host = host_address,
port = port
) {
val sendData = sendChannel.openSubscription()
try {
while (true) {
sendData.poll()?.let {
outgoing.send(Frame.Text(it))
}
incoming.poll()?.let { frame ->
if (frame is Frame.Text) {
val data = frame.readText()
}
}
}
} catch (exception: Throwable) {
Timber.e(exception)
}
}
} catch (cause: Throwable) {
Timber.d(cause)
}
}
Если я отключаюсь от Интернета, подключаюсь снова и пытаюсь отправить некоторые данные, я всегда получаю 1006: закрыто без отправки закрытого кадра.