11.27 SpringBoot2.2 实践WebSocket被不靠谱的百度搜索结果坑了多少人

日常普通项目开发过程中,我们几乎很少用到WebSocket开发。但最近的项目有个功能需要服务器端实时的推送最新的信息同步到前端页面展示。所以思前想后,决定采用WebSocket再适合不过了。于是在实现的过程中刚开始各种百度WebSocket实现流程及样例。遗憾的是,搜索的结果永远都是千篇一律的一致。(甚至,可以肯定的是基本都是复制粘贴没有经过亲身实践过)虽然大的方向没错,但最终的结果就是一直各种错误,各种websocket连接失败。直至最后琢磨了半天,才确认结果。再次验证实际工作中细节决定成败啊。

SpringBoot2.2 实践WebSocket被不靠谱的百度搜索结果坑了多少人

既然准备用WebSocket,那就首先了解WebSocket的主要作用。WebSocket他是为了解决客户端发起多个http请求到服务器资源浏览器必须要经过长时间的轮训问题而生的,他实现了多路复用,他是全双工通信。在webSocket协议下客户端和浏览器可以同时发送信息。用大白话解释主要作用就是:

  1. 客户端特别频繁的和服务器进行数据交互的时候(比如按秒级别的请求)
  2. 服务器端定时向前端推送消息的时候

废话就说到这里,下面直接撸上这次实践过程中的干货及注意点:

框架用的是SpringBoot目前最新版本2.2的框架,首先pom文件依赖添加spring-boot-starter-websocket就行了,如图:

SpringBoot2.2 实践WebSocket被不靠谱的百度搜索结果坑了多少人

然后创建websocket配置文件,如图:

SpringBoot2.2 实践WebSocket被不靠谱的百度搜索结果坑了多少人

最后也是最重要的就是websocket服务端代码编写:划重点一定要注意两个注解(@Controller 和@ServerEndpoint),网上基本都是@Component注解,然后各种解析包冲突等问题。

SpringBoot2.2 实践WebSocket被不靠谱的百度搜索结果坑了多少人

SpringBoot2.2 实践WebSocket被不靠谱的百度搜索结果坑了多少人

SpringBoot2.2 实践WebSocket被不靠谱的百度搜索结果坑了多少人

完成上面三个主要步骤,springboot集成 WebSocket服务端的工作就完成了。后面就是前端websocket连接写法需要注意下:

SpringBoot2.2 实践WebSocket被不靠谱的百度搜索结果坑了多少人

websocket端口号就是后台服务端的端口号,这里的IP一定要写成对应的IP地址,不要用localhost或127.0.0.1地址。

全部写完后,后端直接写个定时任务调用发送消息的接口,前端就可以实时展示服务端推送的消息内容了。至此,所有注意点都已经说明了。有不明白或需要详细了解的小伙伴可关注并私聊我。难得抽出点额外时间来补充这次工作中用到websocket遇到的问题点,在此给自己做个笔记同时分享给需要了解的朋友们。还是那句话。期待大家一起学习一起进步。

See you next time!


分享到:


相關文章: