[发明专利]一种基于Websocket协议的即时通讯方法无效
申请号: | 201310093116.X | 申请日: | 2013-03-22 |
公开(公告)号: | CN103139051A | 公开(公告)日: | 2013-06-05 |
发明(设计)人: | 刘本中;司震;郑国松;胡明慧;刘斌;宋炜伟 | 申请(专利权)人: | 南京信通科技有限责任公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58;H04L29/06 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 邓丽;胡建华 |
地址: | 210013 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 websocket 协议 即时通讯 方法 | ||
技术领域
本发明涉及一种计算机网络处理技术,特别是教育信息化行业的基于Websocket协议的即时通讯方法。
背景技术
随着教育信息化的推广以及最近几年移动互联网的飞速发展,依靠校讯通的短信、彩信等通道建立的家长、教师沟通桥梁已经越来越不能满足家长的需要,家长需要的是能在线跟老师实时交流,能传输图片、语音的沟通工具。在保障用户师隐私的同时,他们希望能在网站或者手机上能即时的跟好友沟通交流。目前网站注册用户已有几百万,日活跃用户有一万左右,传统的基于servlet的阻塞技术是一个连接启用一个线程,这样就无法满足这么多的活跃用户长连接。而作为传统实现comet的技术的定时刷新,由于需要在很短的间隔内不停发送请求用来获取服务状态,导致服务负载增大,而且考虑到在手机终端上,频繁的定时刷新请求会导致手机电量很快消耗 。在聊天消息的处理上,传统方式是将消息插入到数据库中,然后判断用户是否在线,如果在线侧投递给用户,同时将消息状态设置为已投递,如果没有侧保留,等用户下次登录时候发送离线消息给用户。由于网站活跃用户人数过多,这次对数据库的频繁访问会增加数据库压力导致系统故障的增加,而且这种方式也不能很好处理群组消息。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于Websocket协议的即时通讯方法。
为了解决上述技术问题,本发明公开了一种基于Websocket协议的即时通讯方法,在网络通讯层和业务逻辑层之间加入Websocket协议和消息队列服务HornetQ进行消息传输;
使用基于开源的网络处理框架netty的webbit框架提供websocket协议的基本服务,在websocket握手协议成功后,客户端与服务建立网络链接,发送认证登录信息,认证通过后,服务端启动消息队列服务HornetQ,将客户端登录用户加入到等待会话队列中等待消息的激活,收到激活消息后,通过websocket协议将消息返回给客户端。
本发明中,基于websocket的im技术, nio的高并发长连接,以及基于hornetq消息队列的高性能消息处理。通过websocket协议穿透防火墙发送即时消息数据,在消息队列服务HornetQ上注消息监听,快速处理用户消息。
本发明中,将多个队列同时绑定一个地址,用于实现群聊功能。
本发明中,设置有效时间,在有效时间内未能被处理的消息都会自动转到过期队列中,后台服务将这些过期的消息保存进数据库,在终端上线时进行提醒服务。
WebSocket是Html5一种新的协议,它实现了浏览器与服务器的全双工通信,HornetQ是一个支持集群和多种协议的可嵌入、高性能的异步消息系统,具有持久化的消息引擎性能和灵活的集群功能。
本发明采用了html5中的websocket来作为实时通讯的技术,目前支持websocket的浏览器有ie9,safari、firefox、chrome已经涵盖了所有的主流浏览器,在不支持websocket的浏览器上,本发明采用了flash作为替换方案。为了解决大量的长连接,底层采用了基于netty实现的nio框架,减少长连接所带来的传统线程池消耗,为了减轻数据库处理消息的压力,采用了hornetq作为高性能的队列服务,利用hornetq的多queue可以绑定同一个address的特性,将班级的address与用户个人queue绑定,轻松实现了群聊功能。为了使系统的负载能力大幅提供,本发明对每个消息都设置了有效时间,在有效时间内未能被处理的消息都会自动转到过期队列中,后台服务会自动将这些过期的消息保存进数据库,以备以后查询检索。
有益效果:本发明基于websocket、Hornetq的im方法,只需要使用一种通讯协议,就可以实现无缝接入手机、web、pc等多种不同形式的客户端,实现客户端和服务器的实时通信。基于hornetq的消息队列提供了高性能、高实时的消息处理机制。
本发明尤其是基于Websocket、Hornetq技术的web、手机、pc的实时聊天技术,在大量长连接情况下,聊天服务的性能平滑扩展问题,涉及到聊天服务器处理性能和扩展能力的提升。
本发明解决了高并发高链接情况下快速处理用户消息,提高系统的负载均衡能力,实现了长连接情况下聊天服务器的性能提升和能力的扩展,降低了频繁访问时数据库系统故障,有效的处理了群组消息。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明:
图1为现有技术的传统示意图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京信通科技有限责任公司,未经南京信通科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310093116.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:锅炉配风优化自动控制系统
- 下一篇:烤房隧道炉膛自控口散风板