From 871e0f7db2e2c9116d889347c801e40691005abb Mon Sep 17 00:00:00 2001 From: wentch <22250530@qq.com> Date: Wed, 20 Jan 2016 16:58:52 +0800 Subject: [PATCH] --- net.html | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/net.html b/net.html index c4411b67d..6d4a5bfba 100644 --- a/net.html +++ b/net.html @@ -163,6 +163,26 @@ <servlets path="/pipes" autoload="true"/> </server>

        如上, 配置了/pipes 前缀后,客户端发送Servlet请求需带上前缀,请求当前用户信息的url就变成:/pipes/user/myinfo 。

+
+ +

   WebSokcet 服务

+

        WebSokcet协议遵循IETF RFC 6455,其接口并不符合Java EE中的WebSocket的接口规范。
+         一个WebSocket连接对应一个WebSocket实体,即一个WebSocket会绑定一个TCP连接。且有两种模式:
+          1) 普通模式: 协议上符合HTML5规范, 其流程顺序如下:
+                  1.1 onOpen               若返回null,视为WebSocket的连接不合法,强制关闭WebSocket连接;通常用于判断登录态。
+                  1.2 createGroupid     若返回null,视为WebSocket的连接不合法,强制关闭WebSocket连接;通常用于判断用户权限是否符合。
+                  1.3 onConnected      WebSocket成功连接后在准备接收数据前回调此方法。
+                  1.4 onMessage/onFragment+    WebSocket接收到消息后回调此消息类方法。
+                  1.5 onClose              WebSocket被关闭后回调此方法。
+         此模式下 以上方法都应该被重载。
+
+          2) 原始二进制模式: 此模式有别于HTML5规范,可以视为原始的TCP连接。通常用于音频视频通讯场景。其流程顺序如下:
+                  2.1 onOpen               如果方法返回null,视为WebSocket的连接不合法,强制关闭WebSocket连接;通常用于判断登录态。
+                  2.2 createGroupid     若返回null,视为WebSocket的连接不合法,强制关闭WebSocket连接;通常用于判断用户权限是否符合。
+                  2.3 onRead               WebSocket成功连接后回调此方法, 由此方法处理原始的TCP连接, 同时业务代码去控制WebSocket的关闭。
+         此模式下 以上方法都应该被重载。
+

+

        实现一个WebSocket服务需要继承 org.redkale.net.http.WebSocketServlet,以下是一个典型的聊天范例:

@WebServlet("/ws/chat")
 public class ChatWebSocketServlet extends WebSocketServlet {