[发明专利]一种基于MQ的WebSocket通信方法、系统和存储介质有效
| 申请号: | 202211549568.X | 申请日: | 2022-12-05 |
| 公开(公告)号: | CN115665173B | 公开(公告)日: | 2023-03-17 |
| 发明(设计)人: | 覃克春;刘江 | 申请(专利权)人: | 深圳市华曦达科技股份有限公司 |
| 主分类号: | H04L67/1095 | 分类号: | H04L67/1095;H04L67/141;H04L67/143;H04L67/145;H04L67/55;H04L69/16 |
| 代理公司: | 北京惟盛达知识产权代理事务所(普通合伙) 11855 | 代理人: | 陈钊 |
| 地址: | 518057 广东省深圳市南山区粤海街*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 mq websocket 通信 方法 系统 存储 介质 | ||
本发明提供一种基于MQ的WebSocket通信方法、系统和存储介质,方法包括:WebSocket客户端请求WSS服务,与WebSocket服务集群握手连接;WebSocket客户端推送消息给WebSocket服务集群,由Nginx轮询WebSocket服务集群并将消息推送给第一WebSocket服务器;第一WebSocket服务器接收后发送WebSocket客户端SessionId至MQ集群;其他WebSocket服务器监听获取后,根据WebSocket客户端SessionId获取对应的WebSocket客户端对象Session,完成WebSocket服务集群和WebSocket的通信。
技术领域
本发明涉及网络通信技术领域,尤其涉及一种基于MQ的WebSocket通信方法、系统和存储介质。
背景技术
WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。
WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
传统服务(如微服务、应用组件等)的集群、分布式搭建方式:
(1)把用户访问IP使用哈希算法计算,定位到固定服务器节点。缺点依赖于Nginx,需要Nginx精确用户请求IP,人员资源消耗大(算法工程师、运维工程师、开发工程师),不易扩展,如果需要增加服务器,部署完成还要配置节点信息,架构复杂性,机制需要自己本身去实现。
(2)使用数据库实现,每次请求存储Session信息,安全性高,但是成本太大,会造成数据库IO读写,并发取决于数据库的性能,还需要额外维护数据库Session信息脚本。维护成本过高。
(3)使用Cookie共享,根据Cookie共享Session,但是受客户端的影响很大,安全性无法得到保障。
(4)使用Redis(非关系型数据库)缓存,解决分布式session共享问题,注意,这种方式每次请求某一台服务器把session放在缓存,然后其他服务器是去Redis拿session。安全性高、性能高、全由后端业务层实现共享。
基于上述对比,第(4)种使用Redis缓存是首选,但是前提,session支持序列化,对于WebSocket服务而言,WebSocket的客户端对象(Session)是不支持序列化(因为客户端与服务端的消息通信,需要找到对应的客户端,消息要发给对的人),这就是痛点,也就是说在集群中,无法使用Redis来进行WebSocket客户端对象(Session)的共享。只能依赖于每次请求的哈希计算,负载到对应的服务器节点。
WebSocket的客户端对象(Session),有提供Group概念,专门用来存储WebSocket客户端对象(Session),Group存在某台服务器上,由于不支持序列化无法进行共享。
发明内容
为了解决上述至少一个技术问题,本发明提出了一种基于MQ的WebSocket通信方法、系统和存储介质,使用MQ解耦,由MQ异步实现WebSocket集群服务间的通信,集群各个服务器间的数据共享,解决了WebSocket客户端对象(Session)无法序列化,无法放入Redis进行共享问题。
本发明第一方面提出了一种基于MQ的WebSocket通信方法,所述方法包括:
WebSocket客户端请求WSS服务,与WebSocket服务集群握手连接;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市华曦达科技股份有限公司,未经深圳市华曦达科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211549568.X/2.html,转载请声明来源钻瓜专利网。





