Java开发中常用的Websocket技术有哪些

本篇内容介绍了“Java开发中常用的Websocket技术有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联公司-专业网站定制、快速模板网站建设、高性价比石泉网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式石泉网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖石泉地区。费用合理售后完善,十余年实体公司更值得信赖。

 1. 前言

Websocket是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket  使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据,当然也支持客户端发送数据到服务端。通常用来社交聊天、弹幕、多玩家游戏、协同编辑、股票基金实时报价、资讯自动更新等场景,技术选型是结合自身业务选择最适合的技术方案,并不存在褒贬。

2. 常用的 Websocket 技术

2.1 Java Websocket 规范

这是JavaEE提供的规范,在包javax.websocket下,包含客户端 API 和服务端 API,服务端 API 完全依赖于客户端  API,只是在其基础上添加了一些功能,所以只需要导入服务端依赖即可。 具体实现需要 Web 容器、JavaEE 服务器或者框架提供。我们常用的 Web  容器Tomcat、Undertow等都支持。

优点:集成起来简单,原生的Java支持。

缺点:和 Web 服务器等共享容器耦合度高,广播、组播需要自行控制。并发量较低,调优麻烦,存在兼容性问题。

2.2 SockJS

SockJS是一个浏览器JavaScript库,对Websocket进行了抽象。SockJS为您提供了一个一致的,跨浏览器的Javascript  API,该 API 在浏览器和 Web  服务器之间创建了低延迟,全双工,跨域的通信通道。SockJS尝试首先使用本机WebSockets。如果失败了,它将尝试其它各种特定于浏览器的传输协议,例如xhr-streaming、Server  sent events 以及长轮询等。通常也会配合STOMP(面向消息的简单文本协议)来简化其使用。其实Spring  的Websocket组件中采用的就是此协议。

优点:社区活跃,技术成熟,协议栈丰富,有全套 Spring 解决方案,兼容性强,另外可以结合发布订阅模式。

缺点:需要对 SockJS 和 STOMP 进行学习,断线重连、心跳检测、二进制支持不好。

2.3 Socket.IO

Socket.IO 是一个基于 Node.js  的实时应用程序框架,在即时通讯、通知与消息推送,实时分析等场景中有较为广泛的应用,但是它提供基于Netty的服务端实现以及客户端实现,同时支持Websocket和长轮询。除了Websocket的常用场景外,我们可以通过该组件实现安卓和IOS的消息推送。

优点:性能良好,支持广播、组播,断线重连、心跳检测、二进制。支持安卓和 IOS 平台。社区活跃。

缺点:需要自行封装同 Spring 的集成,服务端并非社区维护,资源消耗大。

2.4 ReactiveStream

一些反应流规范和框架也对Websocket进行了实现。Spring Webflux和RSocket就是其中的代表,目前官方已经放出了一些相关的  DEMO。

优点:高吞吐量、高性能。

缺点:技术比较新、学习资料少。

“Java开发中常用的Websocket技术有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!

分享名称:Java开发中常用的Websocket技术有哪些
新闻来源:https://www.cdcxhl.com/article12/ispodc.html

成都网站建设公司_创新互联,为您提供面包屑导航网页设计公司微信公众号域名注册企业网站制作网站设计公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站