Springboot WebSocket开发
创建springboot项目
略
添加webSocket依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
配置类
@Configuration
public class WebSocketConfig {
/**
* ServerEndpointExporter 作用
*
* 这个Bean会自动注册使用@ServerEndpoint注解声明的websocket endpoint
*
* @return
*/
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}
核心类
@ServerEndpoint("/test/{id}") //连接路径
@Component //被spring扫描到
public class Demo {
//建立连接时调用
@OnOpen
public void onOpen(Session session, @PathParam(value = "id") String userName){}
//关闭连接时调用
@OnClose
public void onClose(@PathParam(value = "id") String userName){}
//接收消息时调用
@OnMessage
public void onMessage(Session session, String message) throws IOException{}
//错误时调用
@OnError
public void onError(Session session, Throwable throwable){}
}
坑
-
@ServerEndpoint
标注的核心类 无法 进行Spring依赖注入.
解决方案:使用RedisUtils
工具类@Component public class RedisUtil { public static RedisTemplate redisTemplate; @Autowired public void setRedisTemplate(RedisTemplate redisTemplate) { RedisUtil.redisTemplate = redisTemplate; } }
//直接使用方法的静态变量 RedisUtils.redisTemplate.opsForValue().set("key", "value");