Skip to content
This repository was archived by the owner on Jul 31, 2022. It is now read-only.

Commit 9ae48ed

Browse files
committed
Create SSEHandler.java
1 parent c753384 commit 9ae48ed

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package ktt.lib.httpserver.handler;
2+
3+
import ktt.lib.httpserver.http.RequestMethod;
4+
import ktt.lib.httpserver.server.*;
5+
6+
import java.io.IOException;
7+
import java.util.*;
8+
9+
public class SSEHandler extends SimpleHttpHandler {
10+
11+
private final List<HttpSession> listeners = new ArrayList<>(); // listeners
12+
private int id = -1;
13+
private final LinkedList<String> queue = new LinkedList<>(); // event queue
14+
15+
@Override
16+
public final void handle(final SimpleHttpExchange exchange) throws IOException{
17+
exchange.getResponseHeaders().add("Access-Control-Allow-Headers","Content-Type");
18+
exchange.getResponseHeaders().add("Access-Control-Allow-Methods","GET, HEAD, POST, PUT, DELETE");
19+
exchange.getResponseHeaders().add("Access-Control-Allow-Origin", exchange.getRequestHeaders().getFirst("origin"));
20+
exchange.getResponseHeaders().add("Access-Control-Max-Age","3600");
21+
22+
if(exchange.getRequestMethod() != RequestMethod.OPTIONS){
23+
exchange.send(200);
24+
return;
25+
}
26+
exchange.getResponseHeaders().add("content-type","text/event-stream");
27+
final int latest = exchange.getRequestHeaders().getFirst("Last-Event-ID")
28+
exchange.send(200);
29+
}
30+
31+
public final void addToEventQueue(final String s){
32+
id++;
33+
queue.add(s);
34+
}
35+
36+
}

0 commit comments

Comments
 (0)