我们非常高兴地宣布 Ktor 2.3.0 现已正式发布。 此次更新为 Ktor 生态系统带来了许多新功能和改进。 以下部分将简要介绍此版本中的主要变化:
核心改进
WebSockets ContentNegotiation 插件的显式类型
WebSocket ContentNegotiation 插件现在支持指定显式类型:
client.webSocket("ws://localhost:8080/echo") {
val originalData: Any = Data("hello")
sendSerialized(originalData, typeInfo<Data>())
val received = receiveDeserialized<Data>(typeInfo<Data>())
assertEquals(originalData, received)
}
此功能在无法使用具体化的形参时非常有用。
支持套接字的结构化并发
ktor-network 中的套接字实现现在为 CoroutineScope。 这意味着它支持 cancel() 操作来立即终止连接。
close() 将继续作为正常的关机操作,并将等待所有挂起的操作完成。
删除旧版 JS 配置
即将发布的 Kotlin 1.9.0 版将移除旧