转自:
在springboot中使用websocket与其他方式会有所不同,主要还是因为springboot会内置tomcat以及springboot做了一定的配置。
下面针对springboot中使用websocket功能进行一下记录。
先说一下我们要简单实现的一个功能:
1、实现多用户连接。
2、客户端向服务端发送信息。
3、统计在线人数。
4、服务端向客户端发送信息。
一、首先pom中添加相关依赖
thymeleaf我们只是在这里使用一下,当然你不使用它的话可以不必添加。
注意:1、如果是使用springboot内置tomcat进行部署的话,pom到这里就够了,如果是使用war包方式到tomcat中进行部署,应该还需添加一下
这个包,因为这里面带有javaee对websocket支持的标准规范(jsr356)的注解。主要是@ServerEndpoint。2、使用springboot内置tomcat进行部署的话,在编写websocket具体实现类之前,要注入ServerEndpointExporter,这个bean会自动注册使用了@ServerEndpoint注解声明的Websocket endpoint。而如果使用war包部署到tomcat中进行部署的话,就不必做此步骤,因为它将由容器自己提供和管理。
二、编写服务端具体实现类。
三、编写客户端。
四、编写统计页面
到此,程序基本编写完毕,接下来我们进行测试。
首先我们用两个浏览器(火狐与谷歌,正好也用来测试这两个浏览器对于websocket的支持性)来模拟两个用户
用户1:火狐浏览器
用户2:谷歌浏览器
我们分别用这两个用户向服务器发送消息。
然后看下服务器的控制台输出
可以看到服务器已经成功接收到来自两个客户端传来的消息,这就已经实现了我们最初提到的第一个与第二个需求。接下来我们看第三与第四个需求。
打开我们的统计页面
可以看到,在线人数,以及所在线的人员我们都已统计到,接下来我们可以选择给他们其中一个人发送消息。
可以看到,张三成功收到了消息。
最后,我们可以点击全部发送,给两个客户端都发送消息。
两个客户端都成功收到了消息。