This commit is contained in:
20
net.html
20
net.html
@@ -163,6 +163,26 @@
|
||||
<span class="nt"><servlets</span> <b><span class="na">path=</span><span class="s">"/pipes"</span></b> <span class="na">autoload=</span><span class="s">"true"</span><span class="nt">/></span>
|
||||
<span class="nt"></server></span></pre></div>
|
||||
<p> 如上, 配置了/pipes 前缀后,客户端发送Servlet请求需带上前缀,请求当前用户信息的url就变成:/pipes/user/myinfo 。</p>
|
||||
<br/>
|
||||
|
||||
<p id="net_ws"> <b> WebSokcet 服务</b> </p>
|
||||
<p> WebSokcet协议遵循<a href="http://tools.ietf.org/html/rfc645" target="_blank">IETF RFC 6455</a>,其接口并不符合Java EE中的WebSocket的接口规范。<br/>
|
||||
一个WebSocket连接对应一个WebSocket实体,即一个WebSocket会绑定一个TCP连接。且有两种模式:<br/>
|
||||
1) 普通模式: 协议上符合HTML5规范, 其流程顺序如下:<br/>
|
||||
1.1 onOpen 若返回null,视为WebSocket的连接不合法,强制关闭WebSocket连接;通常用于判断登录态。<br/>
|
||||
1.2 createGroupid 若返回null,视为WebSocket的连接不合法,强制关闭WebSocket连接;通常用于判断用户权限是否符合。<br/>
|
||||
1.3 onConnected WebSocket成功连接后在准备接收数据前回调此方法。<br/>
|
||||
1.4 onMessage/onFragment+ WebSocket接收到消息后回调此消息类方法。<br/>
|
||||
1.5 onClose WebSocket被关闭后回调此方法。<br/>
|
||||
此模式下 以上方法都应该被重载。<br/>
|
||||
<br/>
|
||||
2) 原始二进制模式: 此模式有别于HTML5规范,可以视为原始的TCP连接。通常用于音频视频通讯场景。其流程顺序如下:<br/>
|
||||
2.1 onOpen 如果方法返回null,视为WebSocket的连接不合法,强制关闭WebSocket连接;通常用于判断登录态。<br/>
|
||||
2.2 createGroupid 若返回null,视为WebSocket的连接不合法,强制关闭WebSocket连接;通常用于判断用户权限是否符合。<br/>
|
||||
2.3 onRead WebSocket成功连接后回调此方法, 由此方法处理原始的TCP连接, 同时业务代码去控制WebSocket的关闭。<br/>
|
||||
此模式下 以上方法都应该被重载。<br/>
|
||||
</p>
|
||||
<p> 实现一个WebSocket服务需要继承 org.redkale.net.http.WebSocketServlet,以下是一个典型的聊天范例:</p>
|
||||
<div class="highlight"><pre><span class="nd">@WebServlet</span><span class="o">(</span><span class="s">"/ws/chat"</span><span class="o">)</span>
|
||||
<span class="kd">public</span> <span class="kd">class</span> <span class="nc">ChatWebSocketServlet</span> <span class="kd">extends</span> <span class="n">WebSocketServlet</span> <span class="o">{</span>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user