一种基于xmpp的异构终端消息互通的方法、服务器及系统的制作方法

文档序号:9754414阅读:452来源:国知局
一种基于xmpp的异构终端消息互通的方法、服务器及系统的制作方法
【技术领域】
[0001]本发明属于计算机网络通信技术领域,尤其涉及一种基于XMPP协议来实现异构终 端消息互通的方法、服务器及系统。
【背景技术】
[0002] XMPP(Extensible Messaging and Presence Protocol,可扩展通讯和表不协议) 是基于可扩展标记语言(XML)的协议,可用于服务类实时通讯、表示和需求响应服务中XML 数据元流式传输。它主要用于即时消息,允许网络上的用户相互发送即时消息。XMPP是一个 良好的扩展性的开放协议,很容易进行扩展。
[0003] XMPP突出的特点是可以和其他即时通信系统交换信息和用户在线状况。由于协议 不同,XMPP和其他系统交换信息必须通过协议的转换来实现,实现这个特殊功能的服务端 在XMPP架构里叫做网关。
[0004] 由于XMPP主要用于即时通信,主要完成即时消息客户端消息的互通。随着时代发 展,企业、政府和客户等对办公、生活中通信要求不断提高,往往要求即时消息客户端完成 与异构终端的消息互通,如手机、数字手台、北斗终端等。由于各异构终端协议多样,而且同 样的业务如手机短信在不同企业间实现方式也不尽相同,为了满足不同客户需求实现异构 客户端之间消息的互通,在此就需要对XMPP协议进行扩展。

【发明内容】

[0005] 针对上述问题,本发明的目的是提供一种较好支持XMPP客户端与其他异构客户端 实现消息互通的方法、服务器和系统,并对XMPP协议做了进一步的扩展。
[0006] 为实现上述目的,本发明采取以下技术方案:一种XMPP服务器,包括消息收发模块 和消息路由模块,其特征在于:还包括智能路由插件和多个业务插件;
[0007] 所述消息收发模块用于与XMPP客户端之间完成XMPP消息的接收和发送;同时,接 收消息路由模块发送来的回复消息;
[0008] 所述消息路由模块用于把XMPP消息分发到智能路由插件中;同时,将智能路由插 件发送来的回复消息交由消息收发模块;
[0009] 所述智能路由插件用于根据XMPP消息中的业务类型和路由号码以及智能路由插 件的路由规则,把XMPP消息按照路由策略路由到对应的业务插件;同时,将业务插件回复的 消息交由消息路由模块;
[0010] 所述多个业务插件用于接收外部的适配协议,并根据适配协议对智能路由插件发 送来的XMPP消息进行协议适配后对外输出。
[0011] 其中,所述的智能路由插件包括业务插件管理模块、业务类型配置模块、路由规则 配置模块和消息智能路由模块,
[0012] 所述业务插件管理模块用于注册各种业务插件所支持的业务类型;
[0013] 所述业务类型配置模块用于配置XMPP服务器所支持的业务类型以及业务类型的 失败路由;
[0014] 所述路由规则配置模块用于配置路由规则;其中,所述的路由规则由数字、分号和 X字母组成,用于表示业务类型到各种业务插件之间映射关系;
[0015] 所述消息智能路由模块根据业务类型配置模块的配置结果来判断XMPP服务器是 否支持XMPP消息中的业务类型,如果支持,则根据XMPP消息中的路由号码以及路由规则,按 照最长前缀位数匹配规则路由XMPP消息;如果路由成功,则将XMPP消息转发到对应的业务 插件;如果路由失败,则根据业务类型的失败路由将XMPP消息路由到对应业务插件;否则, 返回业务类型错误消息到消息路由模块。
[0016] 其中,路由号码的长度与路由规则的长度相同;并且,路由规则中最长数字前缀和 路由号码中与路由规则最长数字前缀相同长度的前缀相同。
[0017] 其中,包括如权利要求1至3所述的任一XMPP服务器、XMPP客户端以及一个或多个 第三方系统;
[0018] 所述XMPP客户端用于将外部输入数据按照扩展XMPP协议生成XMPP消息后,将XMPP 消息发送至XMPP服务器,同时,接收XMPP服务器回复的消息;
[0019]所述XMPP服务器用于接收XMPP消息,完成XMPP消息的智能路由和协议适配,并发 送适配后消息至第三方系统;
[0020]所述第三方系统用于接收来自XMPP服务器的消息,根据第三方系统的协议进行回 复。
[0021 ]其中,所述的XMPP客户端包括人机交互模块、协议封装解析模块和消息收发模块;
[0022] 所述人机交互模块用于将外部输入数据输出至协议封装解析模块,同时,将协议 封装解析模块发送来的解析后的XMPP消息进行呈现;
[0023] 所述协议封装解析模块用于将外部输入数据按照扩展XMPP协议进行封装得到 XMPP消息后交由消息收发模块,同时,将XMPP服务器返回或推送过来的XMPP消息进行解析 后交由人机交互模块呈现;
[0024]所述消息收发模块用于发送协议封装解析模块的XMPP消息到XMPP服务器,同时, 接收XMPP服务器返回或推送过来的XMPP消息。
[0025]其中,所述的扩展XMPP协议包括IQ节消息子标签和IQ节消息子标签的子标签;其 中,IQ节消息子标签包括命名空间、业务类型和路由号码,所述的命名空间用于区别XMPP协 议已有IQ节消息,业务类型用于代表XMPP服务器实现不同的功能,路由号码用于作为XMPP 消息路由的依据;IQ节消息子标签的子标签根据业务类型进行扩展。
[0026] -种基于XMPP的异构终端消息互通的方法,包括以下步骤:
[0027] A. XMPP客户端获取XMPP服务器中的业务类型,根据扩展XMPP协议生成XMPP消息后 向XMPP服务器发送;
[0028] B. XMPP服务器接收XMPP消息,根据XMPP消息中的命名空间分发XMPP消息到XMPP月艮 务器的智能路由插件;
[0029] C. XMPP服务器的智能路由插件路由XMPP消息到对应的业务插件;
[0030] D.业务插件将XMPP消息根据第三方系统的协议进行协议适配,将适配后的消息发 送到第三方系统的异构客户端。
[0031] 其中,步骤A中所述的扩展XMPP协议包括IQ节消息子标签和IQ节消息子标签的子 标签;其中,IQ节消息子标签包括命名空间、业务类型和路由号码,所述的命名空间用于区 别XMPP协议已有IQ节消息,业务类型用于代表XMPP服务器实现不同的功能,路由号码用于 作为XMPP消息路由的依据;IQ节消息子标签的子标签根据业务类型进行扩展。
[0032] 其中,所述步骤C具体包括以下步骤:
[0033] 第一步:智能路由插件接收消息路由模块分发的XMPP消息;
[0034] 第二步:消息智能路由模块解析XMPP消息中的业务类型和路由号码;
[0035]第三步:消息智能路由模块根据业务类型配置模块的配置结果来判断XMPP服务器 是否支持XMPP消息中的业务类型,如果支持,则执行第四步;否则,转入第八步;
[0036] 第四步:消息智能路由模块根据业务类型获取路由规则,无路由规则时,转第六 步,否则,执行第五步;
[0037] 第五步:根据最长前缀位数匹配规则,对路由号码进行匹配,判断是否匹配成功, 如果匹配成功,则转第七步;如果匹配失败,则转第六步;
[0038] 第六步:获取失败路由,判断失败路由是否存在,如果存在,转第七步,否则转第八 步;
[0039] 第七步:路由消息到对应的业务插件;
[0040] 第八步:返回XMPP客户端消息处理结果。
[0041] 本发明由于采取以上技术方案,其具有以下优点:
[0042] 1.基于业务类型扩展XMPP协议,简化了 XMPP客户端不同业务需要定义不同消息格 式的复杂性。
[0043] 2.业务
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1