spring4.0 以后加入了对websocket技术的支持,撸主目前的项目用的是 SSM(springMVC+spring+MyBatis)框
架,所以肯定要首选spring自带的websocket了,好,现在问题来了,撸主在网上各种狂搜猛找,拼凑了几个自称是
spring websocket的东东,下来一看,废物,其中包括从 github 上 down 下来的。举个例子,在搭建过程中有个问题,
撸主上谷歌搜索,总共搜出来三页结果共 30 条左右,前 15 条是纯英文的 后 15 条是韩语和日语,而这 30 条结果都不能
解决撸主的问题,无奈,只好上官网看全英帮助,在撸主惊人的毅力和不懈奋斗下,纠结了两天的spring+websocket
整合今天算是彻底搭建成功,摸索透彻了。
websocket是目前唯一真正实现全双工通信的服务器向客户端推的互联网技术,与长连接和轮询技术相比,
websocket的优越性不言自明,长连接的连接资源(线程资源)随着连接数量的增多,必会耗尽,客户端轮询会给服
务器造成很大的压力,而 websocket 是在物理层非网络层建立一条客户端至服务器的长连接,以此来保证服务器向客
户端的即时推送,既不耗费线程资源,又不会不断向服务器轮询请求。
下面言归正传,讲一讲撸主在 SSM(springMVC+spring+MyBatis)框架中集成 websocket 技术的曲折蛋疼直至成功喜悦之路。
- 1 在 maven 的 pom.xml 中加入 websocket 所依赖的 jar 包,什么,你不知道 maven,快去度之或者查看撸主关于 maven 的博文恶补一下,spring-websocket 所依赖的 jar 包有以下几个:
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
- <version>3.1.0</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- <version>2.3.0</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.3.0</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-websocket</artifactId>
- <version>4.0.1.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-messaging</artifactId>
- <version>4.0.1.RELEASE</version>
- </dependency>