quarkus - Quarkus 仅传输数据字段上的 SSE 有效负载反应?
问题描述
我的示例代码:
@GET
@Path("/reactive")
@Produces(MediaType.SERVER_SENT_EVENTS)
@RestSseElementType(MediaType.APPLICATION_JSON)
public Multi<OutboundSseEvent> reactive() {
return Multi.createFrom().ticks().every(Duration.ofSeconds(1))
.onItem().transform(n -> creaMessaggioSse(n,"SseReactive"));
}
private OutboundSseEvent creaMessaggioSse(Long evt, String nome){
return sse.newEventBuilder()
.data("Evento-"+evt)
.id("Id-"+evt)
.name(nome)
.build();
}
我的输出是:
data:{"name":"SseReactive","comment":null,"id":"Id-0","type":"java.lang.String","genericType":"java.lang.String","mediaType":{"type":"text","subtype":"plain","parameters":{},"wildcardType":false,"wildcardSubtype":false},"mediaTypeSet":false,"data":"Evento-0","reconnectDelay":-1,"escape":false,"reconnectDelaySet":false}``
代替
id:Id-1
event:SseStandard
data:Evento-1
那是因为执行的代码是(通过debug发现的)
PublisherResponseHandler.onNext(Object item) {
OutboundSseEventImpl event = new OutboundSseEventImpl.BuilderImpl().data(item).build();
SseUtil.send(requestContext, event)
所以“发送”事件只有数据。
我哪里错了??
解决方案
推荐阅读
- c# - 使用 LINQ to Objects 获得不同
- javascript - 如何在赛普拉斯测试中调用对话框并为 div 设置垂直滚动条
- c++ - 字符串类型
- json - 无法将 *json.RawMessage 类型的表达式转换为 golang 中的 []byte 类型
- javascript - Bootstrap Vue Checkbox:单击另一个元素时如何选中/取消选中复选框
- c++ - 如何在 C++ 中修复这个金字塔模式?
- java - 有很多 @Service 方法来检查一个 id 是否有一些结果
- php - 无法使用 SQL Server 在 Datatables 服务器端使用 order 和 limit
- photoshop - Extendscript 与 Photoshop:导入图像
- google-app-engine - GCS - 基于端口的拆分流量(GAE 和存储之间)