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

标签 java jersey server-sent-events

我有一个 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 似乎需要相当繁琐的构建器类。参见 the example在文档中。我相信这是发送欢迎消息的最少代码:

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

关于java - 将 sse 广播与 Jersey 一起使用,无论如何将事件发送到特定的 EventOutput?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28993268/

相关文章:

jersey - ExceptionMapper 如何在 EVERREST 中与 JAX-RS 一起工作?

javascript - 使用 Grails 实现服务器端事件

python-2.7 - 我需要将一个服务器 app.py 中的 json 数据发送到另一个服务器 app.py 服务?

javascript - 为什么服务器发送的事件每 3 秒触发一次?

java - @Path 和正则表达式 (Jersey/REST)

java - Jersey JAX-RS @Suspished 注释在 GAE 标准环境中不起作用

java - 收到 SQL 语法错误异常,不知道为什么?

java - Struts 2 可以处理 isValid() 方法而不是 getValid()

java - 如何在RealmList中编写查询?

java - Java的SDK中接口(interface)常量声明示例