Ktor WebSocket特性,在Ktor中具有内容更新特性(JSON / GSON)

camsedfj  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(170)

我正在尝试为ktor中的WebSocket反序列化JSON负载。
目前我正在做的事情

// Global property
lateinit var globalGson: Gson

// fun Application.module()
install(ContentNegotiation) {
    gson {
        setDateFormat(DateFormat.LONG)
        setPrettyPrinting()
        globalGson = create() // init global property
    }
}

以及在处理Web套接字时:

session.incoming.consumeEach { frame ->
            if (frame is Frame.Text)
              globalGson.fromJson(frame.readText(), MyClass::class.java) // use global property
}

是否有建议的方法将WebSocket特性与GSON特性一起使用?
有没有一种优雅的方法来访问特定类型的已注册ContentNeogation,并在没有ApplicationPipeline的情况下使用它?(我相信WebSocketSession没有这种方法)

rsl1atfo

rsl1atfo1#

不幸的是,没有办法使用WebsocketsContentNegotiation特性来串行化/反串行化帧的数据,最好的办法是直接使用gson库或任何其他类似的库。

相关问题