Package org.eclipse.jetty.servlets
Class EventSourceServlet
- java.lang.Object
-
- javax.servlet.GenericServlet
-
- javax.servlet.http.HttpServlet
-
- org.eclipse.jetty.servlets.EventSourceServlet
-
- All Implemented Interfaces:
java.io.Serializable,javax.servlet.Servlet,javax.servlet.ServletConfig
public abstract class EventSourceServlet extends javax.servlet.http.HttpServletA servlet that implements the event source protocol, also known as "server sent events".
This servlet must be subclassed to implement abstract method
newEventSource(HttpServletRequest)to return an instance ofEventSourcethat allows application to listen for event source events and to emit event source events.This servlet supports the following configuration parameters:
heartBeatPeriod, that specifies the heartbeat period, in seconds, used to check whether the connection has been closed by the client; defaults to 10 seconds.
NOTE: there is currently no support for
last-event-id.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classEventSourceServlet.EventSourceEmitter
-
Field Summary
Fields Modifier and Type Field Description private static byte[]COMMENT_FIELDprivate static byte[]CRLFprivate static byte[]DATA_FIELDprivate static byte[]EVENT_FIELDprivate intheartBeatPeriodprivate java.util.concurrent.ScheduledExecutorServicescheduler
-
Constructor Summary
Constructors Constructor Description EventSourceServlet()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voiddestroy()protected voiddoGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)voidinit()protected abstract EventSourcenewEventSource(javax.servlet.http.HttpServletRequest request)protected voidopen(EventSource eventSource, EventSource.Emitter emitter)protected voidrespond(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)-
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service, service
-
-
-
-
Field Detail
-
CRLF
private static final byte[] CRLF
-
EVENT_FIELD
private static final byte[] EVENT_FIELD
-
DATA_FIELD
private static final byte[] DATA_FIELD
-
COMMENT_FIELD
private static final byte[] COMMENT_FIELD
-
scheduler
private java.util.concurrent.ScheduledExecutorService scheduler
-
heartBeatPeriod
private int heartBeatPeriod
-
-
Method Detail
-
init
public void init() throws javax.servlet.ServletException- Overrides:
initin classjavax.servlet.GenericServlet- Throws:
javax.servlet.ServletException
-
destroy
public void destroy()
- Specified by:
destroyin interfacejavax.servlet.Servlet- Overrides:
destroyin classjavax.servlet.GenericServlet
-
doGet
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException- Overrides:
doGetin classjavax.servlet.http.HttpServlet- Throws:
javax.servlet.ServletExceptionjava.io.IOException
-
newEventSource
protected abstract EventSource newEventSource(javax.servlet.http.HttpServletRequest request)
-
respond
protected void respond(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.io.IOException- Throws:
java.io.IOException
-
open
protected void open(EventSource eventSource, EventSource.Emitter emitter) throws java.io.IOException
- Throws:
java.io.IOException
-
-