Class WebSocketServlet

java.lang.Object
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
org.eclipse.jetty.websocket.servlet.WebSocketServlet
All Implemented Interfaces:
Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

public abstract class WebSocketServlet extends javax.servlet.http.HttpServlet
Abstract Servlet used to bridge the Servlet API to the WebSocket API.

To use this servlet, you will be required to register your websockets with the WebSocketServletFactory so that it can create your websockets under the appropriate conditions.

The most basic implementation would be as follows.

 package my.example;

 import org.eclipse.jetty.websocket.servlet.WebSocketServlet;
 import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory;

 public class MyEchoServlet extends WebSocketServlet
 {
     @Override
     public void configure(WebSocketServletFactory factory)
     {
         // set a 10 second idle timeout
         factory.getPolicy().setIdleTimeout(10000);
         // register my socket
         factory.register(MyEchoSocket.class);
     }
 }
 
Note: that only request that conforms to a "WebSocket: Upgrade" handshake request will trigger the WebSocketServletFactory handling of creating WebSockets.
All other requests are treated as normal servlet requests.

Configuration / Init-Parameters:
Note: If you use the @WebSocket annotation, these configuration settings can be specified on a per WebSocket basis, vs a per Servlet basis.

maxIdleTime
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
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract void
     
    void
     
    void
     
    protected void
    service(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
     

    Methods inherited from class javax.servlet.http.HttpServlet

    doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service

    Methods inherited from class javax.servlet.GenericServlet

    getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • WebSocketServlet

      public WebSocketServlet()
  • Method Details

    • configure

      public abstract void configure(WebSocketServletFactory factory)
    • destroy

      public void destroy()
      Specified by:
      destroy in interface javax.servlet.Servlet
      Overrides:
      destroy in class javax.servlet.GenericServlet
    • init

      public void init() throws javax.servlet.ServletException
      Overrides:
      init in class javax.servlet.GenericServlet
      Throws:
      javax.servlet.ServletException
      See Also:
      • GenericServlet.init()
    • service

      protected void service(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException
      Overrides:
      service in class javax.servlet.http.HttpServlet
      Throws:
      javax.servlet.ServletException
      IOException
      See Also:
      • HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)