Session 不共享(仅供自己参考)

在有多台的Tomcat实现并发的时候,在进行轮询使用Tomcat,在一台Tomcat登录之后,这个用户的sessionID存储在第一个Tomcat,但是当再有请求,另外一个Tomcat接受,但是Tomcat没有上一个Tomcat的保存的sessionId,就又需要登录,导致用户的体验感不好。

所以采用redis保存用户的信息,因为每个Tomcat都可以访问redis,就可以实现信息的共享。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好,关于springboot websocket session共享的代码编写,可以使用Spring的内置WebSocket支持来实现。下面是参考示例代码: 1、首先,在Spring boot项目的依赖中加入WebSocket支持: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> ``` 2、编写WebSocket配置类: ``` @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(myHandler(), "/myHandler").setAllowedOrigins("*"); } @Bean public WebSocketHandler myHandler() { return new MyWebSocketHandler(); } } ``` 3、实现WebSocketHandler接口: ``` public class MyWebSocketHandler implements WebSocketHandler { private List<WebSocketSession> sessions = new ArrayList<>(); @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { sessions.add(session); } @Override public void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { for (WebSocketSession s : sessions) { s.sendMessage(message); } } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception { sessions.remove(session); } @Override public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { sessions.remove(session); } } ``` 4、在需要共享session的Controller中注入WebSocketSession对象: ``` @Controller public class MyController { @Autowired private WebSocketSession webSocketSession; @MessageMapping("/sendMessage") @SendTo("/topic/messages") public String sendMessage(String message) throws Exception { webSocketSession.sendMessage(new TextMessage(message)); return message; } } ``` 以上代码仅供参考,具体实现需根据业务需求进行改造。希望能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值