【技术实现步骤摘要】
一种支撑互联网问诊服务的集群式即时消息系统及其实现方法
本专利技术属于即时通讯
,具体涉及一种支撑互联网问诊服务的集群式即时消息系统及其实现方法。
技术介绍
即时消息系统是互联网医疗服务的基础需要,医生与患者、医生与医生需要通过一个面向互联网医疗业务特征,即时通讯的消息通知平台,不仅实现文字、图像、文件等通用信息资料的传递,而且能实现EHR(健康档案)、视频交流、在线处方等第三方医疗业务系统的整合协作。例如:发送方提供患者健康档案编号给消息服务节点,消息服务节点对EHR系统进行调用,提取健康档案数据库患者基本信息,并封装成网络可传递的数据包给接收方,便于接收方快速查阅该数据包中患者的基本信息,数据包最终发送给接收端,接收端会根据数据包中的数据来源及证书授权实现对方院内EHR系统的访问穿透查询能力,为接收方客户提供患者详细健康数据调阅能力。那么EHR系统就存在与即时消息系统非常紧密的业务协作关系,视频交流、在线处方等亦如此。为了满足大规模、高并发的互联网消息传递,大多数即时消息产品都是在标准的互联网TCP/IP网络协议之上,形成一个分布式的网络架构,通过一种应用层Socket通讯协议,发送方消息在本消息服务节点上路由到接收方消息服务节点,最终到达目的接收端。例如:Jabber/XMPP协议与架构由IETFXMPP协议(RFC3290)标准化,就是一种比较典型的符合分布式架构特点的标准即时消息协议,用户名通过Jabber识别符表示(some@example.com类似邮件格式),@前半部分表示用户名 ...
【技术保护点】
1.一种支撑互联网问诊服务的集群式即时消息实现的方法,其特征在于,包括:/n通过客户端进行消息节点注册,通过SocketIO服务节点的注册请求,生成临时的、动态的令牌,由SocketIO服务端对客户端拿到的临时令牌进行令牌有效性的控制;/n发送方通过消息节点通讯将消息发送到SocketIO服务节点时,SocketIO服务节点会对消息的类型进行遍历,建立观察者模式,通过图文消息监听对象,实现与图像存储系统的对接;通过视频消息监听对象,实现与视频服务系统的对接;通过健康档案消息监听对象,实现与EHR系统对接;通过处方消息监听对象,实现与HIS系统对象;/n接收方不在发送方SocketIO消息节点会话内,将在SocketIO消息节点集群广播,如果接收方不在自己的会话内就丢弃,如果接收方在会话内找到就进行SocketIO服务节点与业务节点之间的消息通知、业务交互、结果封装及结果消息发送接收端。/n
【技术特征摘要】
1.一种支撑互联网问诊服务的集群式即时消息实现的方法,其特征在于,包括:
通过客户端进行消息节点注册,通过SocketIO服务节点的注册请求,生成临时的、动态的令牌,由SocketIO服务端对客户端拿到的临时令牌进行令牌有效性的控制;
发送方通过消息节点通讯将消息发送到SocketIO服务节点时,SocketIO服务节点会对消息的类型进行遍历,建立观察者模式,通过图文消息监听对象,实现与图像存储系统的对接;通过视频消息监听对象,实现与视频服务系统的对接;通过健康档案消息监听对象,实现与EHR系统对接;通过处方消息监听对象,实现与HIS系统对象;
接收方不在发送方SocketIO消息节点会话内,将在SocketIO消息节点集群广播,如果接收方不在自己的会话内就丢弃,如果接收方在会话内找到就进行SocketIO服务节点与业务节点之间的消息通知、业务交互、结果封装及结果消息发送接收端。
2.根据权利要求1所述支撑互联网问诊服务的集群式即时消息实现的方法,其特征在于,所述通过客户端进行消息节点注册的包括如下步骤:
S10:客户端注册初始化,向注册请求代理服务发送注册请求;
S20:注册请求代理服务接收客户端的注册请求;
S21:注册请求代理服务将新的客户端均衡分配到SocketIO服务节点;
S30:SocketIO服务节点进行会话注册;
S31:若注册失败,返回步骤S20注册请求代理服务,注册请求代理会将错误原路返回给客户端;
S32:若注册成功,SocketIO服务节点为客户端创建身份令牌,并通过HTTP协议最终回应给客户端;
S40:客户端获取到注册成功的令牌,注册完成。
3.根据权利要求2所述支撑互联网问诊服务的集群式即时消息实现的方法,其特征在于,所述通过客户端进行消息节点注册的具体包括如下步骤:
S10:客户端注册初始化
客户端要进行即时消息通讯,需要进行服务节点的注册初始化;注册初始化的流程中客户端通过HTTP协议之上的WebSocket协议,通过向注册代理服务发送注册请求,建立与SocketIO服务节点的连接资源;
S20:注册请求代理服务接收客户端的注册请求,并且进行SocketIO动态分配;
代理服务是一个基于HTTP协议的反向代理服务器组成,其中,Nginx服务可以有效的作为高性能反向代理服务,通过这种两级注册模式,实现一级代理作为客户端请求入口,实现SocketIO集群的调度,SocketIO做为二级集群,提供数百台注册服务子节点的负载;
S21:Nginx服务进行代理的过程是通过负载均衡的分配方式,负载均衡算法是根据Nginx服务提供的最少连接数算法进行均衡负载,优先给连接数最少的SocketIO服务节点注册新的客户端连接;
S30:SocketIO服务节点是以Netty-SocketIO开源组件为基础,提供了TCP/IP长连接之间的数据通讯;
SocketIO服务节点会话注册步骤:(a)SocketIO服务节点获取注册代理节点发来的客户端注册请求,(b)SocketIO对服务节点的身份证书进行数据库身份鉴权,所述身份鉴权数据会缓存在Redis内存数据库中;
S31:若注册失败返回步骤S20注册请求代理服务,注册请求代理会将错误原路返回给客户端;
S32:若注册成功,SocketIO服务节点为客户端创建身份令牌,作为下次访问的身份授权证书,通过HTTP协议最终回应给客户端;
S40:客户端获取到注册成功的令牌消息后,将令牌保存在自己的本地临时数据库中,当下次进行消息发送的时候,会将令牌和消息一并发送。
4.根据权利要求2或3所述支撑互联网问诊服务的集群式即时消息实现的方法,其特征在于:步骤S40中,所述令牌有过期时间,若令牌超过过期时间后,客户端需要重新注册申请。
5.根据权利要求1所述支撑互联网问诊服务的集群式即时消息实现的方法,其特征在于,消息发送过程中,包括如下步骤:
100:客户端作为发送端,开始健康档案的编号发送;
200:SocketIO注册节点获取到客户端发来的消息;
201:根据200SocketIO注册节点获取的健康档案编号进行医院EHR系统编号查询;
202:对健康档案中患者索引信息、医院EHR透传所需信息进行数据封装;
203:SocketIO服务节点完成对健康档案数据的封装后进行发送准备,并确认在本SocketIO服务节点的注册列表中是否存在接收方客户端;
204:如果确认本SocketIO服务节点的注册列表中有接收方客户端,则将封装后的健康档案数据向接收方客户端直接进行数据传输;
300:接收方客户端接收到健康档案数据,并对健康档案数据进行解析,链接到700:接收方客户端所属的系统中,由EHR系统查询详细信息,并返回...
【专利技术属性】
技术研发人员:杨帆,
申请(专利权)人:西安新能技术有限公司,杨帆,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。