1 package ordertracker.rs;
2
3 import java.io.IOException;
4
5 import ordertracker.EventService;
6
7 import org.eclipse.jetty.servlets.EventSource;
8
9 import rx.Subscription;
10 import rx.functions.Action1;
11
12 public class MyEventSource implements EventSource {
13
14 private volatile Subscription subscription;
15
16 @Override
17 public void onOpen(final Emitter emitter) throws IOException {
18 subscription = EventService.instance().events().subscribe(new Action1<String>() {
19
20
21 @Override
22 public synchronized void call(String data) {
23 try {
24 emitter.data(data);
25 System.out.println("sent message " + data);
26 } catch (IOException e) {
27 throw new RuntimeException(e);
28 }
29 }});
30 }
31
32 @Override
33 public void onClose() {
34 subscription.unsubscribe();
35 }
36
37 }