Java 类javax.ws.rs.sse.SseEventSource 实例源码
项目:Java-EE-8-Sampler
文件:SseClient.java
private static void consumeEventsViaSubscription() {
try (final SseEventSource eventSource =
SseEventSource.target(target)
.build()) {
eventSource.register(System.out::println);
eventSource.open();
for (int counter = 0; counter < 5; counter++) {
target.request().post(Entity.text("message " + counter));
}
Thread.sleep(1000); // make sure all the events have time to arrive
} catch (InterruptedException e) {
e.printStackTrace();
}
}
项目:ee8-sandbox
文件:SseClient.java
public final static void main(String[] args) {
WebTarget target = ClientBuilder.newClient().target("http://localhost:8080/jaxrs-sse/rest/events");
try (SseEventSource eventSource = SseEventSource.target(target).build()) {
// EventSource#register(Consumer<InboundSseEvent>)
// Registered event handler will print the received message.
eventSource.register(System.out::println);
// Subscribe to the event stream.
eventSource.open();
// Consume events for just 500 ms
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
项目:mangooio
文件:ServerSentEventServiceTest.java
@Test
public void testCloseConnection() throws InterruptedException {
//given
ServerSentEventService ServerSentEventService = Application.getInstance(ServerSentEventService.class);
Config config = Application.getInstance(Config.class);
Client client = ClientBuilder.newClient();
//when
WebTarget webTarget = client.target("http://" + config.getConnectorHttpHost() + ":" + config.getConnectorHttpPort() + "/sse");
SseEventSource sseEventSource = SseEventSource.target(webTarget).build();
sseEventSource.register((sseEvent) -> {eventData = sseEvent.readData();}, (e) -> e.printStackTrace());
sseEventSource.open();
ServerSentEventService.close("/sse");
sseEventSource.close();
client.close();
//then
assertThat(ServerSentEventService.getConnections("/sse"), not(nullValue()));
assertThat(ServerSentEventService.getConnections("/sse").size(), equalTo(0));
}
项目:mangooio
文件:ServerSentEventServiceTest.java
@Test
public void testSendData() throws InterruptedException {
//given
Config config = Application.getInstance(Config.class);
Client client = ClientBuilder.newClient();
String data = UUID.randomUUID().toString();
//when
WebTarget webTarget = client.target("http://" + config.getConnectorHttpHost() + ":" + config.getConnectorHttpPort() + "/sse");
SseEventSource sseEventSource = SseEventSource.target(webTarget).build();
sseEventSource.register((sseEvent) -> {eventData = sseEvent.readData();}, (e) -> e.printStackTrace());
sseEventSource.open();
//then
Application.getInstance(ServerSentEventService.class).send("/sse", data);
await().atMost(2, TimeUnit.SECONDS).untilAsserted(() -> assertThat(eventData, equalTo(data)));
sseEventSource.close();
client.close();
}
项目:hammock
文件:SseTest.java
@Test
public void shouldBeAbleToRetrieveRestEndpoint() throws Exception {
WebTarget target = ClientBuilder.newClient().register(JohnzonExtension.class).target(uri+"/sse/{uuid}").resolveTemplate("uuid", UUID.randomUUID().toString());
List<SseModel> receivedModels = new ArrayList<>();
try (SseEventSource eventSource = SseEventSource.target(target).build()) {
eventSource.register(event -> {
SseModel body = event.readData(SseModel.class, MediaType.APPLICATION_JSON_TYPE);
System.out.println("Received "+body.getName());
receivedModels.add(body);
}, System.out::println);
eventSource.open();
// Give the SSE stream some time to collect all events
Thread.sleep(1000);
}
assertFalse(receivedModels.isEmpty());
}
项目:hammock
文件:CXFSseTest.java
@Test
public void testFireSseEventsAsync() throws InterruptedException {
final WebTarget target = createWebTarget("/sse/" + UUID.randomUUID());
final Collection<String> messages = new ArrayList<>();
try (SseEventSource eventSource = SseEventSource.target(target).build()) {
eventSource.register(new Consumer<InboundSseEvent>() {
@Override
public void accept(InboundSseEvent e) {
System.out.println("New event...");
messages.add(e.readData());
}
}, System.out::println);
eventSource.open();
}
// wait for messages to come in
Thread.sleep(8000);
messages.forEach(System.out::println);
assertThat(messages).hasSize(4);
}
项目:Java-EE-8-Sampler
文件:ClientAPIExample.java
public void ClientAPIExample() {
WebTarget target = ClientBuilder.newClient().target("http://localhost:8080/jax-rs-2-1/sse/");
try (SseEventSource source = SseEventSource.target(target).build()) {
source.register(System.out::println);
source.open();
}
}
项目:Architecting-Modern-Java-EE-Applications
文件:SseClient.java
public void connect(Consumer<String> dataConsumer) {
eventSource = SseEventSource.target(target).build();
eventSource.register(
item -> dataConsumer.accept(item.readData()),
Throwable::printStackTrace,
() -> System.out.println("completed"));
eventSource.open();
}