您的位置:首页 > 编程语言 > Java开发

Spring4.3+Webscket 实现聊天、消息推送详解原创之各种实现方式(一)

2016-09-12 00:00 615 查看
进入正题,先来说一下websocket的各种实现方式吧。我是搞java方向的,所以此类文章,基本阐述的是java路线上的东西。
先来治治头疼的毛病,网上实现的代码五花八门的,一片条条大路通罗马的景象,让人头疼,那下面先说说websocket见到的各种实现方式,基本包含如下四种实现方式:

(注:服务器按照tomcat7及以上、jetty9.2来做对比参照。)

1.基于java api标准来实现
从java ee 7开始,也就是说从jdk1.7开始,java开始出了关于支持websocket的标准,定义了两类endpoit(都是EndPoint类的子类):@ClientEndpoint 和@ServerEndpoint。如果你看到如上两类标识的注解实现方式,同时javax.websocket.server.ServerEndpointConfig类,用于配置websocket的相关配置类信息。那就是采取的该类实现模式了。此模式tomcat下完全兼容,不需要更改任何东西。jetty服务器下不可以。

2.基于jetty服务器实现
jetty服务器api里面,提供了一套属于自己的实现api,次api是完全依赖于jetty的,不能扩展移植到其他web服务器。

3.基于spring辅助实现
spring用的4.3版本,spring可辅助初始化websocket扫描,并可提供websocket配置ServerEndpointExporter。提供EndpointRegistration 注册websocket连接路径。

4.完全基于spring实现。
spring提供了一套完整的websocketAPI,spring的api里面有这么一段话:

The Spring Framework provides a WebSocket API designed to adapt to various WebSocket engines. Currently the list includes WebSocket runtimes such as Tomcat 7.0.47+, Jetty 9.1+, GlassFish 4.1+, WebLogic 12.1.3+, and Undertow 1.0+ (and WildFly 8.0+). Additional support may be added as more WebSocket runtimes become available.

翻译过来大概的意思就是spring针对websocket提供了一套相关的api标准,此标准支持tomcat7.0.47及其以后的版本,jetty9.1及其以后的版本,GlassFish 4.1+, WebLogic 12.1.3+, and Undertow 1.0+ (and WildFly 8.0+).等并提供更多的扩展。

其实,这种方式正是我们所需要的,一统天下了,针对不同的web服务器有不同的实现标准和方式方法,究其根本,就是spring封装了对各种web服务器标准的支持,只是这块工作不需要我们来做了而已,只需要调取springapi中提供的方式方法就可以实现。

定了基本的路子之后,再找学习的文章基本就可以排除网上一堆的东西了,我们取完全基于spring websocket api的实现方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Spring4.3+Webscket