- springBoot下开发webSocket的sessionId
- 太赞了,竟然用SpringBoot打造一款网页版的IM,进行聊天
- 计算机毕业设计之PyTroch+Spark+LSTM+Scrap
- 计算机毕业设计之PyTroch+Spark+LSTM美食推荐系统
- 计算机毕业设计吊炸天Hadoop+Spark电影推荐系统 电影用
- 计算机毕业设计Python+Spark+Hadoop+Flink
- 计算机毕业设计Python+Spark+LSTM微博大屏情感分析
- 计算机毕业设计之Python+Spark疫情大屏可视化 疫情爬虫
- 计算机毕业设计Python+Spark游戏推荐系统 游戏可视化
- 计算机毕业设计逆天版Python+Spark智慧城市交通大数据
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;
网友评论