Библиотека Ktor-websocket ничего не делает при попытке получить данные на клиенте

В настоящее время я пытаюсь подключить наш мультиплатформенный проект Kotlin к веб-сокетам. Я хотел бы использовать библиотеку ktor-websockets для получения обновлений от нашего бэкэнда, но, к сожалению, когда я запускаю этот код, ничего не происходит:

      client.webSocket(
            port = 80,
            method = HttpMethod.Get,
            host = "https://uat-betws.sts.pl",
            path = "/ticket?token=eyJzdWIiOiI0ZmY5Y2E1Mi02ZmEwLTRiYWYtODlhYS0wODM1NGE2MTU0YjYiLCJpYXQiOjE2MTk4MDAwNzgsImV4cCI6MTYxOTgwMzY3OH0.oIaXH-nFDpMklp4FSJWMtsM7ECSIfuNF99tTQxiEALM"
        )
        {
            for (message in incoming) {
                message as? Frame.Text ?: continue
                val receivedText = message.readText()
                println(receivedText)
            }
            // Consume all incoming websockets on this url
            this.incoming.consumeAsFlow().collect {
                logger.d("Received ticket status websocket of type ${it.frameType.name}")
                if (it is Frame.Text) {
                    Json.decodeFromString<TicketStatusResponse>(it.readText())
                }
            }
        }

Есть ли у кого-нибудь опыт работы с библиотекой ktor-websockets? Документации почти нет, так что, возможно, я что-то делаю не так. Спасибо

1 ответ

Как говорится в документации

Ktor provides Websocket client support for the following engines: CIO, OkHttp, Js.

Это означает, что он работает только на JVM / JS, вы, вероятно, ориентируетесь на iOS. Пока не поддерживается, вы можете следить за выпуском KTOR-363 за обновлениями.

Конечно, команда работает над этим, но пока вам нужно было реализовать это самостоятельно, используя expect / actual, вы можете проверить официальный пример

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