将 sse 广播与球衣一起使用,无论如何将事件发送到特定的 EventOutput?

Using sse broadcast with jersey, anyway to send an event to a specific EventOutput?

我有一项 Restful 服务,用户可以通过该服务获得新的 SSE 广播。代码如下所示:

SseBroadcaster sseBroadcaster = new SseBroadcaster();

@GET
@Produces(SseFeature.SERVER_SENT_EVENTS)
@Path("/getEvent")
public EventOutput getSseOutput(@Context HttpServletResponse response) {

EventOutput eventOutput = new EventOutput();
sseBroadcaster.add(eventOutput);

return eventOutput;
}

我想要做的是,当一个新的 EventOutput 添加到广播者时,向该 EventOutput 发送一条欢迎消息。但是,已经收听广播的每个人也会收到消息。有人知道将事件发送到特定 EventOutput 的方法吗?

您调用 eventOutput.write(event);,其中 eventOutboundEvent 的对象。

制作 OutboundEvent 似乎需要一个相当乏味的构建器 class。请参阅文档中的 the example。我相信这是发送欢迎消息的最少代码:

final OutboundEvent.Builder eventBuilder = new OutboundEvent.Builder();
eventBuilder.data(String.class, "Welcome!");
final OutboundEvent event = eventBuilder.build();
eventOutput.write(event);