System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种长连接通信方法、装置、存储介质及电子装置。
技术介绍
1、针对如云端分布式、ai语音交互、消息推送下发等实际的业务,为了保障响应时间、业务的可靠,需要使用websocket长连接,现有的websocket长连接的一般架构如图1所示。
2、1、客户端访问域名发起建立websocket长连接请求,经过服务端的负载(如slb/f5/a10等),然后建立websocket长连接请求可能进入到k8s集群或互联网数据中心(internet data center,idc)机房的物理机集群中。
3、2、如果是进入k8s集群,则先进入ingress负载后,进入网关应用集群(对应图1中的service-gateway,它是可选的,可以不经过它))后,再连到最终的websocket入口应用集群。
4、3、如果是进入物理/虚拟机服务器集群,则先进入nginx负载后,进入网关应用集群(对应图1中的gateway,它是可选的,可以不经过它)后,再连到最终的websocket入口应用集群(对应图1中的websocket)。
5、受限于负载能承载连接数上限(比如ingress或nginx受端口资源所限,一个实例最多能支持6万多连接;阿里云slb支持的连接数最大规格是100万),如果要对负载进行集群扩容,成本也很高(尤其针对购买的硬件f5/a10或公有云服务slb等)。
技术实现思路
1、本申请提供一种长连接通信方法、装置、存储介质及电
2、本申请提供一种长连接通信方法,应用于终端,包括:
3、向长连接服务注册调度中心发送websocket长连接建立请求消息,所述websocket长连接建立请求消息用于请求与服务器建立websocket长连接,所述长连接服务注册调度中心部署在所述服务器上;
4、接收所述长连接服务注册调度中心发送的重定向消息,所述重定向消息中携带所述服务器上空闲的websocket长连接入口应用实例的地址;
5、根据所述地址,连接到所述空闲的websocket长连接入口应用实例,以通过所述空闲的websocket长连接入口应用实例调用目标集群上的服务。
6、根据本申请提供的一种长连接通信方法,所述方法,还包括:
7、向所述长连接服务注册调度中心发送所述websocket长连接建立请求消息后,判断在第一预设时间内是否接收到所述长连接服务注册中心发送的所述重定向消息;
8、若否,则重新向所述长连接服务注册调度中心发送所述websocket长连接建立请求消息。
9、本申请还提供一种长连接通信方法,应用于服务器,包括:
10、基于长连接服务注册调度中心接收终端发送的websocket长连接建立请求消息,所述websocket长连接建立请求消息用于请求与服务器建立websocket长连接,所述长连接服务注册调度中心部署在所述服务器上;
11、响应于所述websocket长连接建立请求消息,获取所述服务器上空闲的websocket长连接入口应用实例的地址;
12、向所述终端发送重定向消息,所述重定向消息中携带所述服务器上空闲的websocket长连接入口应用实例的地址。
13、根据本申请提供的一种长连接通信方法,获取所述服务器上空闲的websocket长连接入口应用实例的地址,包括:
14、根据预先注册到所述长连接服务注册调度中心中的所述websocket长连接入口应用实例的公网ip地址和端口号,获取所述服务器上空闲的websocket长连接入口应用实例的地址。
15、根据本申请提供的一种长连接通信方法,所述方法,还包括:
16、将所述websocket长连接入口应用封装成容器镜像,部署在所述目标集群上。
17、根据本申请提供的一种长连接通信方法,所述方法,还包括:
18、确定所述终端连接到所述空闲的websocket长连接入口应用实例的失败次数;
19、当所述失败次数达到预设长连接异常次数后,向所述终端重新发送新的重定向消息,所述新的重定向消息中携带所述服务器上新的空闲的websocket长连接入口应用实例的地址。
20、根据本申请提供的一种长连接通信方法,所述方法,还包括:
21、接收所述终端发送的心跳数据,并进行超时检测;
22、若连续第二预设时间内未接收到所述终端发送的交互信息,则判定超时一次,并更新超时次数;
23、在接收到所述终端发送的所述交互信息后,将重置更新后的超时次数;
24、若超时次数超过预设阈值,则确定所述终端掉线。
25、根据本申请提供的一种长连接通信方法,所述基于长连接服务注册调度中心接收终端发送的websocket长连接建立请求消息之前,所述方法,还包括:
26、接收所述终端发送的终端识别信息验证请求;
27、对所述终端识别信息验证请求中携带的终端标识进行验证;
28、若所述验证的结果为通过验证,则向所述终端发送允许建立websocket长连接的反馈信息,以供所述终端根据所述允许建立websocket长连接的反馈信息发送所述websocket长连接建立请求消息。
29、本申请还提供一种长连接通信装置,应用于终端,包括:第一发送模块、第一接收模块以及连接建立模块;
30、所述第一发送模块,向长连接服务注册调度中心发送websocket长连接建立请求消息,所述websocket长连接建立请求消息用于请求与服务器建立websocket长连接,所述长连接服务注册调度中心部署在所述服务器上;
31、所述第一接收模块,用于接收所述长连接服务注册调度中心发送的重定向消息,所述重定向消息中携带所述服务器上空闲的websocket长连接入口应用实例的地址;
32、所述连接建立模块,用于根据所述地址,连接到所述空闲的websocket长连接入口应用实例,以通过所述空闲的websocket长连接入口应用实例调用目标集群上的服务。
33、本申请还提供一种长连接通信装置,应用于服务器,包括:第二接收模块、请求响应模块以及第二发送模块;
34、所述第二接收模块,用于基于长连接服务注册调度中心接收所述终端发送的websocket长连接建立请求消息,所述websocket长连接建立请求消息用于请求与服务器建立websocket长连接,所述长连接服务注册调度中心部署在所述服务器上本文档来自技高网...
【技术保护点】
1.一种长连接通信方法,其特征在于,应用于终端,包括:
2.根据权利要求1所述的长连接通信方法,其特征在于,所述方法,还包括:
3.一种长连接通信方法,其特征在于,应用于服务器,所述方法包括:
4.根据权利要求3所述的长连接通信方法,其特征在于,获取所述服务器上空闲的Websocket长连接入口应用实例的地址,包括:
5.根据权利要求3所述的长连接通信方法,其特征在于,所述方法,还包括:
6.根据权利要求3所述的长连接通信方法,其特征在于,所述方法,还包括:
7.根据权利要求3所述的长连接通信方法,其特征在于,所述方法,还包括:
8.根据权利要求3所述的长连接通信方法,其特征在于,所述基于长连接服务注册调度中心接收终端发送的Websocket长连接建立请求消息之前,所述方法,还包括:
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行权利要求1-2中任一项所述的方法,或权利要求3-8中任一项所述的方法。
10.一种电子
...【技术特征摘要】
1.一种长连接通信方法,其特征在于,应用于终端,包括:
2.根据权利要求1所述的长连接通信方法,其特征在于,所述方法,还包括:
3.一种长连接通信方法,其特征在于,应用于服务器,所述方法包括:
4.根据权利要求3所述的长连接通信方法,其特征在于,获取所述服务器上空闲的websocket长连接入口应用实例的地址,包括:
5.根据权利要求3所述的长连接通信方法,其特征在于,所述方法,还包括:
6.根据权利要求3所述的长连接通信方法,其特征在于,所述方法,还包括:
7.根据权利要求3所述的长连接通信方法,其特征在于...
【专利技术属性】
技术研发人员:赵海宇,
申请(专利权)人:青岛海尔科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。