blob: 67a410ceddef7a8dd02a9cfb920329e0c5de527c [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.11) on Mon Jun 14 16:40:44 EDT 2021 -->
<title>JettyWebSocketServlet (Eclipse Jetty API Doc - v10.0.5)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2021-06-14">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="JettyWebSocketServlet (Eclipse Jetty API Doc - v10.0.5)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":10,"i2":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/JettyWebSocketServlet.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.jetty.websocket.server</a></div>
<h2 title="Class JettyWebSocketServlet" class="title">Class JettyWebSocketServlet</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>javax.servlet.GenericServlet</li>
<li>
<ul class="inheritance">
<li>javax.servlet.http.HttpServlet</li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.websocket.server.JettyWebSocketServlet</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>java.io.Serializable</code>, <code>javax.servlet.Servlet</code>, <code>javax.servlet.ServletConfig</code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">JettyWebSocketServlet</span>
extends javax.servlet.http.HttpServlet</pre>
<div class="block">Abstract Servlet used to bridge the Servlet API to the WebSocket API.
<p>
To use this servlet, you will be required to register your websockets with the <a href="../core/server/WebSocketMappings.html" title="class in org.eclipse.jetty.websocket.core.server"><code>WebSocketMappings</code></a> so that it can create your websockets under the
appropriate conditions.
</p>
<p>The most basic implementation would be as follows:</p>
<pre>
package my.example;
import JettyWebSocketServlet;
import JettyWebSocketServletFactory;
public class MyEchoServlet extends JettyWebSocketServlet
{
&#064;Override
public void configure(JettyWebSocketServletFactory factory)
{
factory.setDefaultMaxFrameSize(4096);
factory.addMapping(factory.parsePathSpec("/"), (req,res)-&gt;new EchoSocket());
}
}
</pre>
<p>
Only request that conforms to a "WebSocket: Upgrade" handshake request will trigger the <a href="../core/server/WebSocketMappings.html" title="class in org.eclipse.jetty.websocket.core.server"><code>WebSocketMappings</code></a> 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 <a href="JettyWebSocketServletFactory.html#addMapping(java.lang.String,org.eclipse.jetty.websocket.server.JettyWebSocketCreator)"><code>JettyWebSocketServletFactory.addMapping(String, JettyWebSocketCreator)</code></a> during
<a href="#configure(org.eclipse.jetty.websocket.server.JettyWebSocketServletFactory)"><code>configure(JettyWebSocketServletFactory)</code></a> calls. The request upgrade may be peformed by this servlet, or is may be performed by a
<a href="../servlet/WebSocketUpgradeFilter.html" title="class in org.eclipse.jetty.websocket.servlet"><code>WebSocketUpgradeFilter</code></a> instance that will share the same <a href="../core/server/WebSocketMappings.html" title="class in org.eclipse.jetty.websocket.core.server"><code>WebSocketMappings</code></a> instance. If the filter is used, then the
filter configuraton is used as the default configuration prior to this servlets configuration being applied.
</p>
<p>
<b>Configuration / Init-Parameters:</b>
</p>
<dl>
<dt>idleTimeout</dt>
<dd>set the time in ms that a websocket may be idle before closing<br>
<dt>maxTextMessageSize</dt>
<dd>set the size in UTF-8 bytes that a websocket may be accept as a Text Message before closing<br>
<dt>maxBinaryMessageSize</dt>
<dd>set the size in bytes that a websocket may be accept as a Binary Message before closing<br>
<dt>inputBufferSize</dt>
<dd>set the size in bytes of the buffer used to read raw bytes from the network layer<br> * <dt>outputBufferSize</dt>
<dd>set the size in bytes of the buffer used to write bytes to the network layer<br>
<dt>maxFrameSize</dt>
<dd>The maximum frame size sent or received.<br>
<dt>autoFragment</dt>
<dd>If true, frames are automatically fragmented to respect the maximum frame size.<br>
</dl></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../serialized-form.html#org.eclipse.jetty.websocket.server.JettyWebSocketServlet">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">JettyWebSocketServlet</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configure(org.eclipse.jetty.websocket.server.JettyWebSocketServletFactory)">configure</a></span>&#8203;(<a href="JettyWebSocketServletFactory.html" title="interface in org.eclipse.jetty.websocket.server">JettyWebSocketServletFactory</a>&nbsp;factory)</code></th>
<td class="colLast">
<div class="block">Configure the JettyWebSocketServletFactory for this servlet instance by setting default
configuration (which may be overriden by annotations) and mapping <a href="JettyWebSocketCreator.html" title="interface in org.eclipse.jetty.websocket.server"><code>JettyWebSocketCreator</code></a>s.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init()">init</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#service(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)">service</a></span>&#8203;(javax.servlet.http.HttpServletRequest&nbsp;req,
javax.servlet.http.HttpServletResponse&nbsp;resp)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.javax.servlet.http.HttpServlet">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;javax.servlet.http.HttpServlet</h3>
<code>doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.javax.servlet.GenericServlet">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;javax.servlet.GenericServlet</h3>
<code>destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>JettyWebSocketServlet</h4>
<pre>public&nbsp;JettyWebSocketServlet()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="configure(org.eclipse.jetty.websocket.server.JettyWebSocketServletFactory)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>configure</h4>
<pre class="methodSignature">protected abstract&nbsp;void&nbsp;configure&#8203;(<a href="JettyWebSocketServletFactory.html" title="interface in org.eclipse.jetty.websocket.server">JettyWebSocketServletFactory</a>&nbsp;factory)</pre>
<div class="block">Configure the JettyWebSocketServletFactory for this servlet instance by setting default
configuration (which may be overriden by annotations) and mapping <a href="JettyWebSocketCreator.html" title="interface in org.eclipse.jetty.websocket.server"><code>JettyWebSocketCreator</code></a>s.
This method assumes a single <a href="../core/server/FrameHandlerFactory.html" title="interface in org.eclipse.jetty.websocket.core.server"><code>FrameHandlerFactory</code></a> will be available as a bean on the
<a href="../../server/handler/ContextHandler.html" title="class in org.eclipse.jetty.server.handler"><code>ContextHandler</code></a>, which in practise will mostly the the Jetty WebSocket API factory.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>factory</code> - the JettyWebSocketServletFactory</dd>
</dl>
</li>
</ul>
<a id="init()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;init()
throws javax.servlet.ServletException</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>init</code>&nbsp;in class&nbsp;<code>javax.servlet.GenericServlet</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>javax.servlet.ServletException</code></dd>
</dl>
</li>
</ul>
<a id="service(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>service</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;service&#8203;(javax.servlet.http.HttpServletRequest&nbsp;req,
javax.servlet.http.HttpServletResponse&nbsp;resp)
throws javax.servlet.ServletException,
java.io.IOException</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>service</code>&nbsp;in class&nbsp;<code>javax.servlet.http.HttpServlet</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>javax.servlet.ServletException</code></dd>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/JettyWebSocketServlet.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 1995&#x2013;2021 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>