Class JettyWebSocketServlet
- All Implemented Interfaces:
jakarta.servlet.Servlet
,jakarta.servlet.ServletConfig
,Serializable
To use this servlet, you will be required to register your websockets with the WebSocketMappings
so that it can create your websockets under the
appropriate conditions.
The most basic implementation would be as follows:
package my.example; import JettyWebSocketServlet; import JettyWebSocketServletFactory; public class MyEchoServlet extends JettyWebSocketServlet { @Override public void configure(JettyWebSocketServletFactory factory) { factory.setDefaultMaxFrameSize(4096); factory.addMapping(factory.parsePathSpec("/"), (req,res)->new EchoSocket()); } }
Only request that conforms to a "WebSocket: Upgrade" handshake request will trigger the WebSocketMappings
handling of creating
WebSockets. All other requests are treated as normal servlet requests. The configuration defined by this servlet init parameters will
be used as the customizer for any mappings created by JettyWebSocketServletFactory.addMapping(String, JettyWebSocketCreator)
during
configure(JettyWebSocketServletFactory)
calls. The request upgrade may be peformed by this servlet, or is may be performed by a
WebSocketUpgradeFilter
instance that will share the same WebSocketMappings
instance. If the filter is used, then the
filter configuraton is used as the default configuration prior to this servlets configuration being applied.
Configuration / Init-Parameters:
- idleTimeout
- set the time in ms that a websocket may be idle before closing
- maxTextMessageSize
- set the size in UTF-8 bytes that a websocket may be accept as a Text Message before closing
- maxBinaryMessageSize
- set the size in bytes that a websocket may be accept as a Binary Message before closing
- inputBufferSize
- set the size in bytes of the buffer used to read raw bytes from the network layer
* - outputBufferSize
- set the size in bytes of the buffer used to write bytes to the network layer
- maxFrameSize
- The maximum frame size sent or received.
- autoFragment
- If true, frames are automatically fragmented to respect the maximum frame size.
- See Also:
-
Field Summary
Fields inherited from class jakarta.servlet.http.HttpServlet
LEGACY_DO_HEAD
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected abstract void
configure
(JettyWebSocketServletFactory factory) Configure the JettyWebSocketServletFactory for this servlet instance by setting default configuration (which may be overriden by annotations) and mappingJettyWebSocketCreator
s.void
destroy()
void
init()
protected void
service
(jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.http.HttpServletResponse resp) Methods inherited from class jakarta.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, init, service
Methods inherited from class jakarta.servlet.GenericServlet
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, log, log
-
Constructor Details
-
JettyWebSocketServlet
public JettyWebSocketServlet()
-
-
Method Details
-
configure
Configure the JettyWebSocketServletFactory for this servlet instance by setting default configuration (which may be overriden by annotations) and mappingJettyWebSocketCreator
s. This method assumes a singleFrameHandlerFactory
will be available as a bean on theContextHandler
, which in practise will mostly the the Jetty WebSocket API factory.- Parameters:
factory
- the JettyWebSocketServletFactory
-
init
public void init() throws jakarta.servlet.ServletException- Overrides:
init
in classjakarta.servlet.GenericServlet
- Throws:
jakarta.servlet.ServletException
-
destroy
public void destroy()- Specified by:
destroy
in interfacejakarta.servlet.Servlet
- Overrides:
destroy
in classjakarta.servlet.GenericServlet
-
service
protected void service(jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.http.HttpServletResponse resp) throws jakarta.servlet.ServletException, IOException - Overrides:
service
in classjakarta.servlet.http.HttpServlet
- Throws:
jakarta.servlet.ServletException
IOException
-