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

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

先说下背景吧,由于公司项目缘由,须要搞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的实质,只能作一下深刻的了解,自动动手来吧。但是整个学习的过程,并非那么的顺畅,能够说用拥堵来讲。说一下痛苦经历吧,其实,真正走完这条路后感受其实,它很简单,可是为何中间痛苦了呢?我只想说一个字:恨。html5

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

相关文章
相关标签/搜索