springBoot下开发webSocket的sessionId问题

1.具体使用这里不展开,通过继承TextWebSocketHandler类重写了其父类AbstractWebSocketHandler的几个相关方法

/**
 * Created by MZS on 2019/4/9.
 */
public class Test extends TextWebSocketHandler {
    
    /**
     * 建立连接之后
     *
     * @param session
     * @throws Exception
     */
    @Override
    public void afterConnectionEstablished(WebSocketSession session) throws Exception {
        super.afterConnectionEstablished(session);
    }

    /**
     * 收到消息
     *
     * @param session
     * @param message
     * @throws Exception
     */
    @Override
    public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
        super.handleMessage(session, message);
    }
    
/**
     * 收到消息
     *
     * @param session
     * @param message
     * @throws Exception
     */
    @Override
    protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
        super.handleTextMessage(session, message);
    }


    
    /**
     * 通道发送error时
     *
     * @param session
     * @param exception
     * @throws Exception
     */
    @Override
    public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
        super.handleTransportError(session, exception);
    }
    

    /**
     * 通道关闭后
     *
     * @param session
     * @param status
     * @throws Exception
     */
    @Override
    public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
        super.afterConnectionClosed(session, status);
    }

}

2.这个的webSocket是由tomcat维护的,具体的sessionId的生成在org.apache.tomcat.websocket.WsSession中.

        this.id = Long.toHexString(ids.getAndIncrement());

是一个递增的16进制并转为字符串,每次重启服务,这个id的计数又会重新从0开始.
如果建立了多个通道,那他们的id可能为(0,1818,70cc).
因为通道断开,对应的webSocketSession对象被释放,所以不同通道直接的id可能是不连续的.

3.由于在业务中有用到这个id,但对于16进制感觉不合适,想对其生成规则进行重写.

但在WsSession中id属性是使用final修饰的,无法进行修改,所以只能作罢
因为对webSocket的使用经验比较少,所以就不再考虑使用其他方案对其进行改进.
后续会尝试去研究一下在聊天,游戏领域对于webSocket是如何进行使用的.

    private final String id;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-WebSo...
    敢梦敢当阅读 8,943评论 0 50
  • Servlet:Sun公司制订的一种用来扩展Web服务器功能的组件规范。当浏览器将请求发送给Web服务器(比如:a...
    南山伐木阅读 593评论 0 4
  • 敬爱的王院长,智慧的高管们,勤奋的家人们,大家晚上好,我是视光中心执行部王珏,今天是2018年12月7日,是我日精...
    王珏_100e阅读 217评论 0 1
  • 自从来天津上研究生,就总感觉自己像活在梦里一样,脑袋总是昏昏沉沉的,一种不真实的感觉永远挥之不去,我也不知道为什么...
    叫大哥就不打你阅读 172评论 0 0
  • 晚上看电视,想着早饭的事,于是乎,蒸馒头吧,哈哈, 和面,酵母用温水散开,加入白糖,嗯,和面面。 粗糙的一只手,至...
    至简从心阅读 3,253评论 95 56