Ho avuto lo stesso problema e ho trovato una soluzione. Jersey ha un client SSE (la sua non fa parte della distribuzione standard, è necessario anche il vaso jersey-media-SSE che potete trovare nel repository Maven.
public static void consumeEventStream(String url, Consumer consumer) throws Exception {
Client client = ClientBuilder.newBuilder().register(new SseFeature()).build();
WebTarget target = client.target(url);
EventInput e = null;
while (true) {
Thread.sleep(1000);
if (e==null || e.isClosed()) {
// (re)connect
e = target.request().get(EventInput.class);
e.setChunkType("text/event-stream");
}
final InboundEvent inboundEvent = e.read();
if (inboundEvent == null) {
break;
}
else {
String data = inboundEvent.getData();
// do something here - notify observers, parse json etc
}
}
System.out.println("connection closed");
}
L'invocazione di setChunkType è quello di affrontare un bug in Jersey - se la codifica del char è parte del tipo di contenuto, la jersey non riconoscerà il tipo di evento.In altra parte, le specifiche e i browser si aspettano che il tipo di contenuto sia impostato. Acc. a jira questo è stato risolto ma è sicuramente non ancora lavorare nella sua ultima versione jersey-media-SSE-2.2.jar, puoi anche https://java.net/jira/browse/JERSEY-2062.
Spero che questo aiuti, Jens
qualche idea su questo? maglia SSE sta lavorando per te? Potete per favore aiutarmi ? http://stackoverflow.com/questions/23672354/server-side-event-not-firing-in-jersey-2-8-using-sse – Sadanand