我正在尝试为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没有这种方法)
1条答案
按热度按时间rsl1atfo1#
不幸的是,没有办法使用
Websockets
的ContentNegotiation
特性来串行化/反串行化帧的数据,最好的办法是直接使用gson库或任何其他类似的库。