基于 tomcat 的 WebSocket 实现
这种方式需要 tomcat 7.x,JEE7 的支持。
首先创建一个 springboot 项目,在 pom.xml 中导入 websocket 所需要的依赖
然后开启 WebSocket 的自动注册(如果使用的是独立的 servlet 容器,而不是 spring boot 的内置容器,就不需要注入这个,它将由容器自己提供和管理)
然后就可以创建 WebSocket 服务端啦!主要在于两个部分 :
通过注解 @ServerEndpoint 来声明实例化 WebSocket 服务端
通过注解 @OnOpen、@OnMessage、@OnClose、@OnError 来声明回调函数
最后让我们来检验一下成果!首先用在线 WebSocket 测试开三个用户,然后让用户 2 发一条消息
可以看到在用户 2 的消息发送后,每个在线用户都能够收到来自服务器的主动推送 业务完美qwq
基于 Spring 的 WebSocket 实现
这种方式需要 spring4.x 的支持。由于使用了 socketjs,对于不支持 WebSocket 的浏览器可以模拟 WebSocket 的使用。
首先还是创建一个 spring boot 项目,导入依赖
然后新建一个配置类,用于添加服务端点,以接收客户端的连接
最后构建服务端,具体的方法基本与上面对应,数据通过 session 进行传输
最后检查一下消息发送情况(这里测试的时候是把代码中从session获取userId改成了直接令 userId = 1L)
完成!(。・`ω´・)