文章目录
今日内容
-
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨
学习目标
-
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽
⑾ ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨
一、引入依赖
建议!!和自己的Spring一个版本
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
二、添加WebSocket处理器映射及拦截器
配置
访问地址和处理器的映射及拦截器
注意!!! 一定要加上"setAllowedOrigins()"解决跨域问题!! 否则使用工具能连上, 使用浏览器就连不上!!!
@Component
@EnableWebSocket
public class WebSocketConfiguration implements WebSocketConfigurer {
@Resource
private ModelSessionWebSocketHandler handler;
/**
* 配置WebSocket链接地址
* @param registry
*/
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
// 浏览器支持websocket
registry.addHandler(handler, "/modelSession")
.setAllowedOrigins("*")
.addInterceptors(new ModelSessionInterceptor());
// 浏览器不支持的话,需要SocketJs引入支持
// registry.addHandler(handler, "/modelSession/sockjs")
// .setAllowedOrigins("*")
// .addInterceptors(new ModelSessionInterceptor()).withSockJS();
}
}
这个类的作用是配置WebSocket的链接地址,分为浏览器支持WebSocket和不支持WebSocket的情况,不支持可以引入sockjs(某些环境下使用这行代码会导致无法连接,不放心可以删去)
WebSocket连接地址是:
ws://ip:端口号/项目名称/modelSessionWebSocket可以通过URL传参:
"ws://ip:端口号/项目名称/modelSession?userId="+userId
三、创建拦截器
public class ModelSessionInterceptor implements HandshakeInterceptor {
protected static Logger logger = LoggerFactory.getLogger(ModelSessionInterceptor.class);
private static SaasLoginService saasLoginService = SpringContextHolder.getBean(SaasLoginService.class);
public final static String HEADER_DEV_LOGIN_NAME = "dev-login-name";
public final static String HEADER_CLIENT_ID = "pro-client-id";
public final static String HEADER_ACCESS_TOKEN = "pro-access-token";
public final static String HEADER_ACCESS_SECRET_KEY = "pro-access-secret-key";
// 前置操作
@Override
public boolean beforeHandshake(ServerHttpRequest request,
ServerHttpResponse response,
WebSocketHandler wsHandler,
Map<String, Object> attributes)

本文介绍了如何在Spring框架中配置WebSocket依赖,添加处理器映射和拦截器,处理WebSocket握手和消息传递,以及解决跨域问题。详细步骤包括引入依赖、配置WebSocket处理器、创建拦截器以验证用户登录等。
最低0.47元/天 解锁文章
1133

被折叠的 条评论
为什么被折叠?



