【问题标题】:How to get the value of another function synchronously如何同步获取另一个函数的值
【发布时间】:2022-07-07 21:30:27
【问题描述】:

我正在使用 ktor websocket 模块 当我向客户端发送数据时,发送后如何从客户端取回数据?

    val result = serverSession.send(json)
    // result

就这样

其实就是Unit类型 但我想得到字符串

【问题讨论】:

  • 我应该使用计时器来等待结果吗? :(

标签: kotlin websocket ktor


【解决方案1】:

Ktor官网有很好的例子。

如果您是服务器端,请查看此链接 (https://ktor.io/docs/websocket.html#handle-single-session) 和以下示例。

webSocket("/echo") {
            send("Please enter your name")
            for (frame in incoming) {
                when (frame) {
                    is Frame.Text -> {
                        val receivedText = frame.readText()
                        if (receivedText.equals("bye", ignoreCase = true)) {
                            close(CloseReason(CloseReason.Codes.NORMAL, "Client said BYE"))
                        } else {
                            send(Frame.Text("Hi, $receivedText!"))
                        }
                    }
                }
            }
        }

如果您是客户端,请查看此链接 (https://ktor.io/docs/websocket-client.html#example) 和以下示例。

client.webSocket(method = HttpMethod.Get, host = "127.0.0.1", port = 8080, path = "/echo") {
            while(true) {
                val othersMessage = incoming.receive() as? Frame.Text
                println(othersMessage?.readText())
                val myMessage = Scanner(System.`in`).next()
                if(myMessage != null) {
                    send(myMessage)
                }
            }
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多