package multicast.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import multicast.Peer2PeerConnection;
import multicast.interfaces.NetworkP2P;
import multicast.interfaces.OnReceiveHandler;
public class P2PServlet extends HttpServlet {
private static final long serialVersionUID = 2118315345950586869L;
private NetworkP2P p2p;
private PrintWriter out;
private SimpleHandler simpleHandler;
class SimpleHandler implements OnReceiveHandler {
public Boolean firstExec = true;
public void execute(String message) {
P2PServlet.this.out.print("data: {" + message + "}");
P2PServlet.this.out.flush();
}
}
public void init() {
this.simpleHandler = new SimpleHandler();
this.p2p = new Peer2PeerConnection();
}
protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/event-stream;charset=utf-8");
this.out = response.getWriter();
if (this.simpleHandler.firstExec) {
String uniqueID = p2p.connect(this.simpleHandler);
this.out.print("uniqueID: {" + uniqueID + "}");
this.out.flush();
}
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, java.io.IOException {
processRequest(req, resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, java.io.IOException {
processRequest(req, resp);
}
}