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: закрыто без отправки закрытого кадра.

0 ответов

Другие вопросы по тегам