java - 将 Java/Kotlin 对象发送到 RSocket 路由
问题描述
@MessageMapping
我已经使用 Spring 的 RSocket 支持设置了端点,并使用RSocketRequester
. 这个流程运行良好,因为 Spring 为我们处理了一堆低级的东西。
现在,我想要某种 UI 来显示我正在使用的任何数据,并通过提到的@MessageMapping
端点对该数据进行任何 UI 更新。问题是我不知道如何使用rsocket-java
或rsocket-kotlin
库将完整的 Java/Kotlin 对象(作为 JSON)发送到我的端点。由于我必须同时发送数据和元数据,并且元数据被编码,因为ByteBuf
我必须将 JSON 编码为ByteBuf
,但它涉及到端点都搞砸了,它不能被反序列化。
我也尝试过发送原始字符串值,它也涉及到端点都搞砸了(一堆非 UTF 字符)。对于数据 mime 类型,我都尝试过,但两者都APPLICATION_JSON
没有TEXT_PLAIN
。
另外,我想我做错的任何事情都与 Java/Kotlin 库没有严格的关系,但可以应用于任何其他现有的 RSocket 库(Go、Rust、JS 等)
解决方案
如果您使用的是 rsocket-kotlin 客户端(不是在 spring-boot 上构建),那么您可以从https://github.com/rsocket/rsocket-cli/blob/master/src/main/kotlin/io/复制代码rsocket/cli/Main.kt
它为路线构建元数据
this.route != null -> {
CompositeMetadata(RoutingMetadata(route!!)).toPacket().readBytes()
}
推荐阅读
- javascript - 我想更改每个滚动 css 的文本
- c# - .Net Core 中的通用存储库模式与实体框架有什么相关性
- powershell - Send-MailMessage 参数 Null 或空
- java - 为什么我的数组值在回收站视图中不起作用
- angular - Angular 视图 ngFor 在 ngOnInit 中更新后不显示可观察的集合
- java - Java8;在一个线程上使用睡眠时间,但有多个可调用对象
- machine-learning - 在线时装公司的流失预测模型
- service-fabric-actor - Service Fabric 运行时未从 Actor 服务实例回收未使用的内存
- arrays - APL 中 x,¨y 的语义:即,在 APL 中映射一个连接是什么意思?
- c# - Hangfire 作业插入影响应用程序的 API 性能