Prepare SSE mechanism
This commit is contained in:
@@ -225,6 +225,12 @@
|
||||
<artifactId>pdfbox</artifactId>
|
||||
<version>2.0.28</version>
|
||||
</dependency>
|
||||
<!-- server-side events -->
|
||||
<dependency>
|
||||
<groupId>com.republicate</groupId>
|
||||
<artifactId>jeasse-servlet3</artifactId>
|
||||
<version>1.2</version>
|
||||
</dependency>
|
||||
<!-- test emails -->
|
||||
<dependency>
|
||||
<groupId>com.icegreen</groupId>
|
||||
|
@@ -0,0 +1,21 @@
|
||||
package org.jeudego.pairgoth.web.sse
|
||||
|
||||
import info.macias.sse.EventBroadcast
|
||||
import info.macias.sse.servlet3.ServletEventTarget
|
||||
import org.slf4j.LoggerFactory
|
||||
import javax.servlet.http.HttpServlet
|
||||
import javax.servlet.http.HttpServletRequest
|
||||
import javax.servlet.http.HttpServletResponse
|
||||
|
||||
|
||||
class SSEServlet: HttpServlet() {
|
||||
companion object {
|
||||
private val logger = LoggerFactory.getLogger("sse")
|
||||
}
|
||||
private val broadcast = EventBroadcast()
|
||||
|
||||
override fun doGet(req: HttpServletRequest, resp: HttpServletResponse?) {
|
||||
logger.trace("<< new channel")
|
||||
broadcast.addSubscriber(ServletEventTarget(req), req.getHeader("Last-Event-Id"))
|
||||
}
|
||||
}
|
@@ -31,12 +31,22 @@
|
||||
<servlet-name>api</servlet-name>
|
||||
<servlet-class>org.jeudego.pairgoth.web.ApiServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet>
|
||||
<servlet-name>sse</servlet-name>
|
||||
<servlet-class>org.jeudego.pairgoth.web.sse.SSEServlet</servlet-class>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
<async-supported>true</async-supported>
|
||||
</servlet>
|
||||
|
||||
<!-- servlet mappings -->
|
||||
<servlet-mapping>
|
||||
<servlet-name>api</servlet-name>
|
||||
<url-pattern>/api/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet-mapping>
|
||||
<servlet-name>sse</servlet-name>
|
||||
<url-pattern>/events/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- context params -->
|
||||
<context-param>
|
||||
|
Reference in New Issue
Block a user