Spring4.3+Webscket 实现聊天、消息推送详解原创(序)

本文通过作者亲身体验,对比分析了多种在线聊天方案,包括Red5flex、ajax轮询、pomelo及WebSocket方案。最终详细介绍了WebSocket的学习过程及其实现细节。

我想在记录这篇文章之前,先写点儿东西,因为websocket的事情,遭受痛苦不浅,特此记录该篇文章,只为那些跟我一样因为此问题正在遭受痛苦的兄弟姐妹。我才疏学浅,不当之处还望高人批评指正。

先说下背景吧,因为公司项目原因,需要搞web在线聊天,项目部署结构也比较简单,nginx负载均衡,tomcat集群部署。 聊天方案想了有多种,包括Red5 flex方案、ajax轮询方案、pomelo方案,html5websockt方案,其实,个人认为pomelo方案是最优路线,怎奈工作就是工作,因为时间限制,此路学习成本有点大,放弃了。 再说red5 flex方案,之前搞过多路视频聊天、视频直播,其实此路也蛮好的,前端flash好处是可以解决各种浏览器版本的问题,多媒体流服务器一个是占用资源比较大,也受连接数限制,同时也需要匹配集群,怎奈公司不可能花大把资金为了聊天再投入多媒体流服务器,耗时间也不短,备选。 再说ajax轮询方案,目前很多网站用的方式,好处是可借鉴例子、第三方插件等众多,上手简单,容易。不好的地方也显而易见,服务器要承载较大的压力,pass。 websokcet方案:html5里面比较新的东西,新一代客户端-服务器的异步通信方法。取代了单个的TCP套接字,使用ws或wss协议,可用于任意的客户端和服务器程序。WebSocket目前由W3C进行标准化,上手简单,且可同步移植到web app。劣势也挺明显,版本低一点的浏览器不支持,特别是IE系列10以下的版本。备选。

以上几种方案,除了websocket没有搞过之外,其他几项都有涉猎,想搞明白一个东西的好与坏,必须得深入其中,而不是只听别人的三言两语就能给一件事情下了定义。我想知道websocket的实质,只能做一下深入的了解,自动动手来吧。可是整个学习的过程,并不是那么的顺畅,可以说用拥堵来说。说一下痛苦经历吧,其实,真正走完这条路后感觉其实,它很简单,但是为什么中间痛苦了呢?我只想说一个字:恨。

我想,可能很多人碰见问题的时候,第一步可能就是打开度娘,然后搜索,我承认度娘的搜索能力,几乎国内没有人能匹敌,但是,一直被一个问题困扰,就是去重问题,无论你搜索什么,你会发现,N多篇文章写的都是同一件事情,因为有太多太多的人不停的转载同一篇文章,其二,怎奈对于websocket搜出来的东西,大多数人写的东西,要么是跟蜻蜓点水一样,就那么一点,要么就是写的很浅显,还有一种更让人头疼的情况,你会在这些文章里面发现了多种不同的实现方式,五花八门,到底哪种是最优?该选谁?让人头大, 耗了三天的时间,来在网上看各种文章,感受也只有一个字:懵。重新理了理思绪,花了剩余6天的时间,各种源码,各种api,缕清了各种线,并实现了自己想要的东西,现将自己的认知以及学习中碰见的各种问题,做一个系统的记录。代码中我将尽可能的用更多的注释去阐明问题以及各种代码的用途。后面会上传一个示例的源代码。共同学习,共同进步。

转载于:https://my.oschina.net/tianshibuzuoai/blog/745569

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值