跳过导航链接
org.nutz.plugins.mvc.websocket

类 AbstractWsEndpoint

    • 字段详细资料

      • sessions

        protected ConcurrentHashMap<String,javax.websocket.Session> sessions
        存放Websocket Session Id --> Session 的映射关系
      • roomProvider

        protected WsRoomProvider roomProvider
        房间提供者. WebSocket默认没有房间的概念
      • idField

        protected Field idField
        用于修改Session的Id字段
      • roomPrefix

        protected String roomPrefix
    • 构造器详细资料

      • AbstractWsEndpoint

        public AbstractWsEndpoint()
    • 方法详细资料

      • onOpen

        public void onOpen(javax.websocket.Session session,
                           javax.websocket.EndpointConfig config)
        Websocket会话创建成功时调用本方法, 将创建WsHandler实例,并登记之.
        指定者:
        onOpen 在类中 javax.websocket.Endpoint
      • onClose

        public void onClose(javax.websocket.Session session,
                            javax.websocket.CloseReason closeReason)
        WebSocket会话关闭是调用本方法,通常是用户关闭浏览器. 移除session相关的资源
        覆盖:
        onClose 在类中 javax.websocket.Endpoint
      • onError

        public void onError(javax.websocket.Session session,
                            Throwable throwable)
        WebSocket会话出错时调用,默认调用onClose.
        覆盖:
        onError 在类中 javax.websocket.Endpoint
      • changeSessionId

        protected void changeSessionId(javax.websocket.Session session)
        WebSocketSession只对当前JVM是唯一的,所以我们要改造一下, 变成UUID. 测试过tomcat和jetty是没有问题的,其他web服务器未测试.
      • createHandler

        public WsHandler createHandler(javax.websocket.Session session,
                                       javax.websocket.EndpointConfig config)
        根据WebSocket会话创建一个WsHandler. 注意, 该实例还得实现MessageHandler.Whole或MessageHandler.Partial接口!!!
      • getSession

        public javax.websocket.Session getSession(String wsid)
        返回一个活跃的WebSocket Session对象
        参数:
        wsid - session的id
        返回:
        如果该wsid存在且处于活跃状态,返回session实例,否则返回null
      • getSession

        public javax.websocket.Session getSession(String wsid,
                                                  boolean opened)
        根据wsid获取一个Session对象.
        参数:
        wsid - session的id
        opened - 是否检查活跃状态
      • getHandler

        public WsHandler getHandler(String wsid)
        根据wsid获取其WsHandler实例
        参数:
        wsid - session的id
      • sendText

        public boolean sendText(String wsid,
                                CharSequence text)
        异步非阻塞发送文本信息到指定的WebSocket Session
        参数:
        wsid - session的id
        text - 文本信息
        返回:
        session存活即返回true
      • sendTextSync

        public boolean sendTextSync(String wsid,
                                    CharSequence text)
        sendText的同步阻塞版本
        参数:
        wsid - session的id
        text - 文本信息
        返回:
        session存活且发送成功,返回true,否则返回false
      • sendJson

        public boolean sendJson(String wsid,
                                Object msg)
        异步非阻塞发送文本信息到指定的WebSocket Session
        参数:
        wsid - session的id
        msg - 将转换为Json字符串的对象
        返回:
        session存活即返回true
      • sendJsonSync

        public boolean sendJsonSync(String wsid,
                                    Object msg)
        sendJson的同步阻塞版本
        参数:
        wsid - session的id
        msg - 将转换为Json字符串的对象
        返回:
        session存活且发送成功,返回true,否则返回false
      • toByteBuffer

        public ByteBuffer toByteBuffer(Object msg)
        把byte[]/InputStream/ByteBuffer转换为ByteBuffer,其他类型的实例将toString()然后转byte[]再封装为ByteBuffer
        参数:
        msg - byte[]/InputStream/ByteBuffer等对象
        返回:
      • sendBinary

        public boolean sendBinary(String wsid,
                                  Object msg)
        异步非阻塞发送一段二进制数据到指定的WebSocket Session
        参数:
        wsid - session的id
        msg - byte[]/InputStream/ByteBuffer等
        返回:
        session存活且msg不是null,返回true,否则返回false
      • sendBinarySync

        public boolean sendBinarySync(String wsid,
                                      Object msg)
        sendBinary的同步阻塞版本
      • each

        public void each(String room,
                         org.nutz.lang.Each<javax.websocket.Session> callback)
        按房间遍历活跃的session对象
        参数:
        room -
        callback -
      • setRoomProvider

        public void setRoomProvider(WsRoomProvider roomProvider)
      • getRoomPrefix

        public String getRoomPrefix()
      • setRoomPrefix

        public void setRoomPrefix(String roomPrefix)

Copyright © 2017. All rights reserved.