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的实现方式。
先来治治头疼的毛病,网上实现的代码五花八门的,一片条条大路通罗马的景象,让人头疼,那下面先说说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 实现聊天、消息推送详解原创(序)
- Spring4.3+Webscket 实现聊天、消息推送详解之具体实现(三)
- Spring4.3+Webscket 实现聊天、消息推送详解原创之websocket与web服务器之间的那些纠结的事儿(二)
- 详解在Spring Boot框架下使用WebSocket实现消息推送
- Android消息推送的Androidpn实现方式:(一)下载androidpn服务器端与客户端的Demo并运行
- Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解
- spring整合apache activemq实现消息发送的三种方式代码配置实例
- [android] 安卓消息推送的几种实现方式
- androidpn实现android消息推送功能——服务器端详解
- C++实现文本消息推送--通过post请求方式访问第三方服务器从电脑向手机进行消息推送
- Spring实现AOP的几种方式详解
- Android短链接方式实现消息推送
- Spring Boot实战之netty-socketio实现简单聊天室(给指定用户推送消息)
- [原创]JAVA的动态代理机制及Spring的实现方式
- Spring和Websocket相结合实现消息的推送
- (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画
- 用IBM-MQTT方式实现Android 推送消息机制
- DWR实现消息推送(基于单对单聊天)-第三节
- Android之消息推送聊天实现
- Android中使用socket通信实现消息推送的方法详解