代码之家  ›  专栏  ›  技术社区  ›  pChip

使用带有jersey的sse广播,还是要将事件发送到特定的EventOutput?

  •  2
  • pChip  · 技术社区  · 9 年前

    我有一个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发送事件的方法吗?

    1 回复  |  直到 9 年前
        1
  •  2
  •   Darren Cook    9 年前

    你打电话 eventOutput.write(event); 哪里 event 是的对象 OutboundEvent .

    制作 OutboundEvent(外部事件) 似乎需要一个相当乏味的生成器类。看见 the example 在文档中。我认为这是发送欢迎信息的最低代码:

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