今天是六一儿童节,祝愿小朋友们节日快乐!大朋友们事事顺心!
Websocet服务端实现
WebSocketConfig.Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
不要忘记在springmvc的配置文件中配置对此类的自动扫描
1 |
|
@Configuration
@EnableWebMvc
@EnableWebSocket
这三个大致意思是使这个类支持以@Bean的方式加载bean,并且支持springmvc和websocket,不是很准确大致这样,试了一下@EnableWebMvc不加也没什么影响,@Configuration本来就支持springmvc的自动扫描
1 |
|
用来注册websocket server实现类,第二个参数是访问websocket的地址
1 2 3 |
|
这个是使用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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
|
相关内容大家一看就能明白,就不多解释了
然后WebSocketHandshakeInterceptor.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
这个的主要作用是取得当前请求中的用户名,并且保存到当前的WebSocketHandler中,以便确定WebSocketHandler所对应的用户,具体可参考HttpSessionHandshakeInterceptor
用户登录建立websocket连接
index.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
使用sockjs时要注意
1、这两个的写法
1 |
|
1 |
|
2、web.xml中
1 2 3 |
|
1 |
|
1 |
|
这两个的版本都要是3.0+
然后在这个servlet中加入
1 |
|
1 2 3 4 5 6 7 8 9 10 |
|
然后所有的filter中也加入
1 |
|
3、添加相关依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
好了,现在websocket可以正常建立起来了
返回用户未读的消息
当连接建立后,会进入SystemWebSocketHandler的afterConnectionEstablished方法,代码看上边,取出WebSocketHandshakeInterceptor中保存的用户名
查询信息后使用session.sendMessage(new TextMessage(count + ""));返回给用户,从哪来回哪去
服务端推送消息给用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
在这里可以使用sendMessageToUser给某个用户推送信息,也可以使用sendMessageToUsers给所有用户推送信息