package nl.tudelft.simulation.dsol.jetty.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.AsyncContextState;
/**
* SSEServlet.java.
*
* Copyright (c) 2003-2018 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights
* reserved. See for project information
* www.simulation.tudelft.nl. The source code and binary code of this software is proprietary information of Delft
* University of Technology.
* @author Alexander Verbraeck
*/
public class SSEServlet extends HttpServlet
{
/** */
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
System.out.println("GET!!!");
System.out.println(req.getSession(true).getId());
BufferedReader reader = req.getReader();
String str = "";
while ((str = reader.readLine()) != null)
{
System.out.println(str);
}
reader.close();
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType("text/event-stream");
resp.setCharacterEncoding(StandardCharsets.UTF_8.name());
resp.flushBuffer();
AsyncContextState async = (AsyncContextState) req.startAsync();
System.out.println(async);
/*-
new Thread()
{
@Override
public void run()
{
try
{
for (int i = 0; i < 3; i++)
{
try
{
Thread.sleep(3000);
}
catch (InterruptedException e)
{
SimLogger.always().error(e);
}
ServletOutputStream outputStream = async.getResponse().getOutputStream();
if (outputStream.isReady())
{
String message = "data: refresh\n\n";
outputStream.write(message.getBytes(StandardCharsets.UTF_8), 0, message.length());
outputStream.flush();
async.getResponse().flushBuffer();
}
else
{
System.out.println("not ready!");
}
System.out.println("wrote!");
}
}
catch (IOException e)
{
async.complete();
System.err.println(e.getMessage());
}
};
}.start();
*/
}
/** {@inheritDoc} */
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
System.out.println("POST!!!");
BufferedReader reader = req.getReader();
String str = "";
while ((str = reader.readLine()) != null)
{
System.out.println(str);
}
reader.close();
}
}