Websocet服务端实现

本文介绍了WebSocket服务端的实现,包括WebSocketConfig配置@EnableWebSocket支持,SystemWebSocketHandler处理连接,WebSocketHandshakeInterceptor获取并保存用户信息。在用户登录后建立WebSocket连接,服务端能够返回用户未读消息,并能主动向特定用户推送消息。
摘要由CSDN通过智能技术生成

Websocet服务端实现

WebSocketConfig.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Configuration
@EnableWebMvc
@EnableWebSocket
public class WebSocketConfig extends WebMvcConfigurerAdapter implements WebSocketConfigurer {
     @Override
     public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
         registry.addHandler(systemWebSocketHandler(), "/webSocketServer" ).addInterceptors( new WebSocketHandshakeInterceptor());
 
         registry.addHandler(systemWebSocketHandler(), "/sockjs/webSocketServer" ).addInterceptors( new WebSocketHandshakeInterceptor())
                 .withSockJS();
     }
 
     @Bean
     public WebSocketHandler systemWebSocketHandler(){
         return new SystemWebSocketHandler();
     }
 
}
不要忘记在springmvc的配置文件中配置对此类的自动扫描

?
1
< context:component-scan base-package = "com.ldl.origami.websocket" />

@Configuration

@EnableWebMvc
@EnableWebSocket
这三个大致意思是使这个类支持以@Bean的方式加载bean,并且支持springmvc和websocket,不是很准确大致这样,试了一下@EnableWebMvc不加也没什么影响,@Configuration本来就支持springmvc的自动扫描


?
1
registry.addHandler(systemWebSocketHandler(), "/webSocketServer" ).addInterceptors( new WebSocketHandshakeInterceptor())
用来注册websocket server实现类,第二个参数是访问websocket的地址



?
1
2
3
registry.addHandler(systemWebSocketHandler(), "/sockjs/webSocketServer" ).addInterceptors( new WebSocketHandshakeInterceptor())
                 .withSockJS();
     }
这个是使用Sockjs的注册方法


首先SystemWebSocketHandler.java


?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值