本发明专利技术公开了一种BS系统监控客户端连接状态的装置及工作方法,提供一种在不增加浏览器、服务器中间件如Apache的负载,不影响客户体验的要求下,BS系统的服务端能在无需人为参与的、自动的,相对精准的获知已经连接的浏览器客户端是否在持续连接中,及时(秒级)的感知到客户端的断开,并作出对应的业务处理。
【技术实现步骤摘要】
本专利技术涉及BS架构
,具体地,涉及一种BS系统监控客户端连接状态的装置及工作方法。
技术介绍
基于BS架构的系统,http服务中间件与客户端浏览器之间的连接为无状态的连接,即在服务端,响应一次客户端的请求后,并无法获知客户端的连接状态。在有些场景下,服务器需要相对精确的获知浏览器的连接状态,尤其是浏览器是否离开当前系统,这对有些业务,比如许可的占用和释放,有经济利益上的影响,因此至关重要。目前BS框架的系统,通常通过以下3类方式单独的或者3类方式组合在一起,来界定客户端是否连接着服务器:1、登录系统后要做登出操作。这就要求需要人为的参与,而人是会有疏忽的,经常会有未登出就离开了系统。2、浏览器直接通过js定时发送http请求已告知服务端自己的存在状态。这从某种程度上能让服务端感知到客户端是否在持续连接中,进而感知到客户端是否已经离开系统,但这会额外的增加浏览器和服务器的负担,这随着并发量的增加,服务器中间件的负载将会变得无法承受。通过js截取浏览器关闭、重定向操作。这就需要区别不同的浏览器,针对对不同类型的浏览器实现不同的代码,而目前来说,不同类型的浏览器层出不穷,同一类型的浏览器也一再升级版本,这对代码的兼容性要求是不断拓展的,而且往往只滞后于使用的。现有技术公开的专利“监测用户连接状态的方法”是与本专利技术最接近的现有技术,对比文件中,用户接入网络时,向用户端推送用户端可以识别的浏览器页面,并通过与浏览器页面交互报文,对用户连接状态进行监测,与本专利技术的实现机制不同。
技术实现思路
本专利技术的目的在于,针对上述问题,提出一种BS系统监控客户端连接状态的装置及工作方法,以实现在不增加http客户端和http服务中间件压力的前提下,服务端能够相对精准的感知到客户端的连接状态的优点。为实现上述目的,本专利技术采用的技术方案是:一种BS系统监控客户端连接状态的装置,主要包括:客户端浏览器包括SocketClient模块,服务器端包括http中间件和SocketServer模块,所述http中间件包括踢出服务模块,所述SocketServer模块维护存储的当前客户端连接信息的链表,并接收SocketClient模块的心跳报文,更新链表上对应的客户端信息,定时找出客户端连接信息中大于一个心跳周期的节点,从链表中删除此节点,并携带客户端唯一标示参数请求调用踢出服务模块,踢出服务模块踢出对应客户端的连接信息,完成许可的释放。进一步地,所述SocketServer模块还更新连接中客户端的心跳时间戳和插入新增客户端。进一步地,所述http中间件包括物理表,所述物理表包括以下字段,session_id,客户端唯一标示,heartbeat_timestamp和心跳建立时的时间戳。进一步地,一种BS系统监控客户端连接状态的装置的工作方法,主要包括步骤1:Scoket客户端进行登录,登录成功后根据服务器的响应,与对应的服务器的SocketServer模块建立连接;步骤2:服务器端的SocketServer模块接收SocketClient模块的心跳报文,更新SocketServer模块链表上对应的客户端连接信息;步骤3:SocketServer模块定时地判断客户端连接信息中是否有节点大于一个心跳周期,如果有,则执行步骤3;步骤4:从链表中删除此节点,并带着客户端标示参数请求调用http中间件的踢出服务,踢出服务模块响应请求,踢出对应客户端的连接信息,完成许可的释放。本专利技术各实施例的一种BS系统监控客户端连接状态的装置,由于主要包括,SocketClient模块,服务器端包括http中间件和SocketServer模块,所述http中间件包括踢出服务模块,所述SocketServer模块维护存储的当前客户端连接信息的链表,并接收SocketClient模块的心跳报文,更新链表上对应的客户端信息,定时找出客户端连接信息中大于一个心跳周期的节点,从链表中删除此节点,并携带客户端唯一标示参数请求调用踢出服务模块,踢出服务模块踢出对应客户端的连接信息,完成许可的释放;从而在不增加浏览器、服务器中间件(如Apache)的负载,不影响客户体验的要求下,BS系统的服务端能在无需人为参与的、自动的,相对精准的获知已经连接的浏览器客户端是否在持续连接中,及时(秒级)的感知到客户端的断开,并作出对应的业务处理。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1为现有技术BS的框架结构;图2为本专利技术实施例所述的装置结构原理图。具体实施方式以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。具体地,一种BS系统监控客户端连接状态的装置,主要包括,客户端浏览器包括SocketClient模块,服务器端包括http中间件和SocketServer模块,所述http中间件包括踢出服务模块,所述SocketServer模块维护存储的当前客户端连接信息的链表,并接收SocketClient模块的心跳报文,更新链表上对应的客户端信息,定时找出客户端连接信息中大于一个心跳周期的节点,从链表中删除此节点,并携带客户端唯一标示参数请求调用踢出服务模块,踢出服务模块响应请求,踢出对应客户端的连接信息,完成许可的释放。所述SocketServer模块还更新连接中客户端的心跳时间戳和插入新增客户端。所述http中间件包括物理表,所述物理表包括以下字段,session_id,客户端唯一标示,heartbeat_timestamp和心跳建立时的时间戳。一种BS系统监控客户端连接状态的装置的工作方法,主要包括:步骤1:Scoket客户端进行登录,登录成功后根据服务器的响应,与对应的服务器的SocketServer模块建立连接;步骤2:服务器端的SocketServer模块接收SocketClient模块的心跳报文,更新SocketServer模块链表上对应的客户端连接信息;步骤3:SocketServer模块定时地判断客户端连接信息中是否有节点大于一个心跳周期,如果有,则执行步骤3;步骤4:从链表中删除此节点,并带着客户端标示参数请求调用http中间件的踢出服务,踢出服务模块响应请求,踢出对应客户端的连接信息,完成许可的释放。基于BS架构的系统,商业许可按照连接数量进行销售。服务端通常能容易的获取并记录客户端的登录请求,从而完成对许可的占用。但是由于BS系统架构的限制,服务端无法精确的获知客户端的离开:浏览器直接关闭,机器关机导致的浏览器关闭,浏览器重定向到别的网址导致的实际已经离开系统,服务器此时不能依据这些情况的发生及时的释放当前占用的许可。本装置提供一种在不增加浏览器、服务器中间件(如Apache)的负载,不影响客户体验的要求下,BS系统的服务端能在无需人为参与的、自动的,相对精准的获知已经连接的浏览器客户端是否在持续连接中,及时(秒级)的感知到客户端本文档来自技高网...
【技术保护点】
一种BS系统监控客户端连接状态的装置,其特征在于,客户端浏览器包括Socket Client模块,服务器端包括http中间件和Socket Server模块,所述http中间件包括踢出服务模块,所述Socket Server模块维护存储的当前客户端连接信息的链表,并接收Socket Client模块的心跳报文,更新链表上对应的客户端信息,定时找出客户端连接信息中大于一个心跳周期的节点,从链表中删除此节点,并携带客户端唯一标示参数请求调用踢出服务模块,踢出服务模块响应请求,踢出对应客户端的连接信息,完成许可的释放。
【技术特征摘要】
1.一种BS系统监控客户端连接状态的装置,其特征在于,客户端浏览器包括SocketClient模块,服务器端包括http中间件和SocketServer模块,所述http中间件包括踢出服务模块,所述SocketServer模块维护存储的当前客户端连接信息的链表,并接收SocketClient模块的心跳报文,更新链表上对应的客户端信息,定时找出客户端连接信息中大于一个心跳周期的节点,从链表中删除此节点,并携带客户端唯一标示参数请求调用踢出服务模块,踢出服务模块响应请求,踢出对应客户端的连接信息,完成许可的释放。2.根据权利要求1所述的BS系统监控客户端连接状态的装置,其特征在于,所述SocketServer模块还更新连接中客户端的心跳时间戳和插入新增客户端。3.根据权利要求1所述的BS系统监控客户端连接状态的装置,其特征在于,所述http中间件包括物理...
【专利技术属性】
技术研发人员:霍瑞明,李宏坤,
申请(专利权)人:用友优普信息技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。