基于mqtt主题订阅机制的通信方法以及接入网关的制作方法

文档序号:8514539阅读:662来源:国知局
基于mqtt主题订阅机制的通信方法以及接入网关的制作方法
【技术领域】
[OOOU 本发明设及通讯领域,特别是设及一种基于MQTT主题订阅机制的通信方法W及 接入网关。
【背景技术】
[0002] 即时通讯(Instantmessaging,简称IM)是一个终端服务,允许两人或多人使用 网路即时的传递文字讯息、档案、语音与视频交流。即时通讯按使用用途分为企业即时通讯 和网站即时通讯,根据装载的对象又可分为手机即时通讯和PC即时通讯,手机即时通讯代 表是短信,PC即时通讯代表是视频。
[000引 MQTT(MessageQueuingTelemetryTransport,消息队列巡测传输)是IBM开发 的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可W把所有联网物品和外部连接起来,被用来当做传感器和致动器(例如通过Twitter让房屋 联网)的通信协议。
[0004] MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器 和控制设备通讯而设计的协议,它具有W下主要的几项特性:
[0005] 1)使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序禪合。
[0006] 2)对负载内容屏蔽的消息传输。
[0007] 3)使用TCP/IP提供网络连接。
[000引 4)有S种消息发布服务质量:
[0009] "至多一次",消息发布完全依赖底层TCP^P网络。会发生消息丢失或重复。该一 级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次 发送;
[0010] "至少一次",确保消息到达,但消息重复可能会发生;
[0011] "只有一次",确保消息到达一次。该一级别可用于如下情况,在计费系统中,消息 重复或丢失会导致不正确的结果。
[001引W小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,W降低网 络流量。
[001引 6)使用LastWill和Testament特性通知有关各方客户端异常中断的机制。
[0014] 现有技术中分布式即时通信的方案,例如XMPP(可扩展消息处理现场协议),即时 通信的机制为:客户端连接至网关,有一个单独的路由服务(0)用于维护客户端与网关的 连接关系(即哪个用户连接的哪个服务器)。两个网关上的用户如果需要通信,则消息发送 方扣serl)所在的网关(A),必须从路由服务(0)查询要收消息的用户扣ser2)在哪个网 关炬)上,然后将消息转发至接收消息的网关炬),网关炬)将消息转发至接收消息的用户 OJserf)。
[0015] 现有IMQnstantMessaging,即时通讯)即时通信方案大多比较复杂,特别是分布 式系统中的消息路由,往往需要维护一张体积较大的消息路由表,并且还设及到多服务器 寻址等问题。路由表的动态更新,路由信息同步也是一个比较复杂的功能。
[0016] 针对相关技术中分布式即时通信应用消息路由复杂的问题,目前尚未提出有效的 解决方案。

【发明内容】

[0017] 针对相关技术中分布式即时通信应用消息路由复杂的问题,本发明提供了一种基 于MQTT主题订阅机制的通信方法化及接入网关,用W解决上述技术问题。
[001引根据本发明的一个方面,本发明提供了一种接入网关,其中,该接入网关包括: 业务处理模块IMService、内部客户端MQTTClientI、外部客户端MQTTClientR和服务端 MQTTServer,其中,
[0019]IMService,用于向MQTTClientI注册事件通知,W使所述MQTTClientI接收 到所述MQTTServer的消息时,通知所述IMService;还用于使所述MQTTClientI向所述 MQTTServer订阅主题;还用于创建MQTTClientR,W使所述MQTTClientR与对应接入网关的 MQTTServer连接,并订阅主题;
[0020]MQTTClientI,用于在接收到MQTTServer的消息时,通知所述IMService;还用于 向MQTTServer订阅主题,主题消息包括接入网关的用户化er或者其他接入网关发送至所 述接入网关的消息;
[002UMQTTClientR,用于与对应接入网关的MQTTServer连接,并向该MQTTServer订阅 主题;
[002引MQTTServer,与化er进行消息交互,为MQTTClientI和对应接入网关的MQTTClientR支持主题订阅机制。
[002引根据本发明的另一方面,本发明还提供了一种基于MQTT主题订阅机制的通信方 法,其中,该方法包括;启动接入网关A与对应的接入网关B中的IMService、MQTTClientI、 MQTTClientR、MQTTServer;其中,MQTTClientI向同一接入网关的MQTTServer订阅主题, MQTTC1ientR与对应的接入网关的MQTTServer连接,并订阅主题;第一用户在接入网关A 上线,第二用户在接入网关B上线;基于接入网关A与接入网关B,第一用户与第二用户进 行消息交互。
[0024] 优选地,第一用户在接入网关A上线包括:第一用户连接接入网关A的 MQTTServer,并订阅主题,主题消息包括接入网关A上全部与第一用户交互的消息;第一用 户向所述MQTTServer上报用户上线消息,基于主题订阅机制,MQTTClientI接收该用户上 线消息,然后通知IMService。
[0025] 优选地,第二用户在接入网关B上线包括:第二用户连接接入网关B的 MQTTServer,并订阅主题,主题消息包括接入网关B上全部与第二用户交互的消息;第二用 户向所述MQTTServer上报用户上线消息,基于主题订阅机制,MQTTClientI接收该用户上 线消息,然后通知IMService。
[0026] 优选地,第一用户在接入网关A上线之后,还包括:接入网关A的IMService 通过MQTTC1ienti向MQTTServer发布用户上线通知,基于主题订阅机制,接入网关B 的MQTTClientR接收该用户上线通知,并通知接入网关B的IMService;接入网关B的 IMService在接入网关B上查找与第一用户有业务往来的在线用户,之后执行W下步骤:
[0027] a)接入网关B的IMService调用MQTTClientR向接入网关A的MQTTServer订阅 主题,主题消息包括在接入网关A上全部向所述在线用户的对话消息;
[0028] b)接入网关B的IMService调用MQTTClientI向MQTTServer发布用户上线推送 消息,基于主题订阅机制,所述在线用户接收该用户上线推送消息;
[0029] C)接入网关B的IMService调用MQTTClientR向接入网关A的MQTTServer发布 订阅通知,该订阅通知用于通知接入网关A的MQTTClientR在接入网关B的MQTTServer订 阅主题,主题消息包括在接入网关A上全部向第一用户的对话。
[0030] 优选地,基于接入网关A与接入网关B,第一用户与第二用户进行消息交互,包括: 第二用户向接入网关B的MQTTServer发布对话消息;基于主题订阅机制,接入网关A的 MQTTClientR接收接入网关B的MQTTServer转发的所述对话消息,所述MQTTClientR将 该对话消息通知接入网关A的IMService;接入网关A的IMService调用MQTTClientI向 MQTTServer发布所述对话消息,基于主题订阅机制,第一用户接收所述MQTTServer转发的 所述对话消息。
[0031] 优选地,所述方法还包括;同一接入网关上的两个用户,其中一个用户向该接入网 关的MQTTServer发布对话消息,基于主题订阅机制,另一用户接收所述MQTTServer转发的 该对话消息。
[0032] 本发明有益效果如下;
[0033] 本发明的技术方案基于MQTT的订阅/发布机制,通用多用户、多服务器间对一套 MQTTTopic主题的订阅/发布,可省去复杂的消息路由功能,消息可基于服务器维护的订 阅关系与基于该订阅关系的消息转发,自行实现消息路由功能。从而不需维护消息路由表, 简化即时通信方案。
[0034] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予W实施,并且为了让本发明的上述和其它目的、特征和优点能够 更明显易懂,W下特举本发明的【具体实施方式】。
【附图说明】
[0035] 图1是根据本发明实施例的接入网关的结构框图;
[0036] 图2是根据本发明实施例的基于MQTT主题订阅机制的通信方法流程图;
[0037] 图3是根据本发明实施例的接入网关启动流程的示意图;
[003引图4是根据本发明实施例的接入网关停止流程的示意图;
[0039] 图5是根据本发明实施例的用户上线流程的示意图;
[0040] 图6是根据本发明实施例的用户间对话流程的示意图;
[0041] 图7是根据本发明实施例的用户下线流程的示意图。
【具体实施方式】
[0042] 为了解决相关技术中分布式即时通信应用消息路由复杂的问题,本发明提供了一 种基于MQTT主题订阅机制的通信方法W及接入网关,W下结合附图W及实施例,对本发明 进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用W解释本发明,并不限定 本发明。
[0043] 实施例一
[0044] 本实施例提供了一种接入网关,图1是根据本发明实施例的接入网关的结构框 图,如图1所示,该接入网关包括;IMService(业务处理模块)、MQTTClientI(内部客户 端)、MQTTClientR(外部客户端)和MQTTServer(服务端),其中,
[0045] IMService,是IM接入网关的业务处理模块,负责IM接入网关的核屯、业务调度,包 括功能;用户关系管理、接入网关与MQTTClientR映射管理、MQTTClientI与MQTTClientR 调用等。
[0046] 其功能是;用于向MQTTClientI注册事件通知,W使所述MQTTClientI接收到 所述MQTTServer的消息时,通知所述IMService ;还用于使所述MQTTClientI向所述 MQTTServer订阅主题;还用于创建MQTTClientR, W使所述MQTTClientR与对应接入网关的 MQTTServer连接,并订阅主题。
[0047]MQTTC1ientI,是IM接入网关内部通信的支持MQTT标准协议的客户端,用于 IMService发送或接收本接入网关的消息。一个IM接入网关只有一个
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1