一种并发通信传输数据的方法技术

技术编号:18735412 阅读:20 留言:0更新日期:2018-08-22 04:22
本发明专利技术公开了一种并发通信传输数据的方法,包含以下步骤:S1.定义全局变量:定义相关连接请求信息变量和相关操作信息变量;S2.构造器:根据请求信息对请求信息变量进行初始化,并通过相关操作对其合法性做出判断并给出对应的回应,对合法的连接请求在连接成功后对相关变量进行初始化及实例化;S3.启用相关线程连接。本发明专利技术的并发通信传输数据的方法,采用发布订阅的方式将xmpp服务器与mqtt服务器桥接到一起,实现并发通信传输数据。

【技术实现步骤摘要】
一种并发通信传输数据的方法
本专利技术涉及计算机不同协议系统服务与mqtt系统服务通信数据传输应用
,特别涉及一种并发通信传输数据的方法,可实现不同协议系统服务与MQTT系统服务的并发通信传输数据。
技术介绍
当下是物联网的时代,而mqtt协议是实现物联网非常好的协议,对于过去未使用该协议作为系统服务的公司及重大项目,而考虑将来转向使用mqtt协议作为系统服务的,在保证不影响之前系统服务的前提下,就需要实现之前的系统服务与mqtt系统服务之间的数据传输通信,这就在不影响之前系统服务的使用的情况下完成向mqtt系统服务的转接。
技术实现思路
本专利技术的目的是克服上述
技术介绍
中不足,提供一种并发通信传输数据的方法,采用发布订阅的方式将xmpp服务器与mqtt服务器桥接到一起,实现并发通信传输数据。为了达到上述的技术效果,本专利技术采取以下技术方案:一种并发通信传输数据的方法,可实现不同协议系统服务与MQTT系统服务的并发通信传输数据,具体包含以下步骤:S1.定义全局变量:定义相关连接请求信息变量和相关操作信息变量;S2.构造器:根据请求信息对请求信息变量进行初始化,并通过相关操作对其合法性做出判断并给出对应的回应,对合法的连接请求在连接成功后对相关变量进行初始化及实例化;S3.启用相关线程连接。进一步地,还包含步骤S4.定义回调函数:在所述步骤S3启用连接中时定义相关回调。进一步地,所述步骤S4具体包含:S40.定义连接回调,根据连接结果成功与否调用对应的回调;S41.实例化一个监听者对是否连接成功进行监听;S42.实例化一个等待对象,等待监听者监听到连接成功;S43.定义不同的连接成功的回调,根据对应函数中不同连接成功的个数给出对应的回应;S44.定义一个获取随机客户端的函数,获取随机连接;S45.定义一个获取全部连接对象的函数;S46.定义一个布尔型函数,判断失败的连接是否包含连接成功的客户端,根据不同结果返回相应信息;S47.定义一个函数用来打印连接失败的原因,将连接失败的原因存入相关变量中;S48.分别定义发布订阅和取消订阅的函数;S49.基于发布,订阅函数,通过订阅共享主题,连接池的客户端根据主题连接订阅者,由于是共享订阅,每个客户端对于相同的主题只有一个客户端会接收。进一步地,所述步骤S49中共享订阅的订阅共享主题具有多个分组,每个分组均代表不同特征的对象。本专利技术与现有技术相比,具有以下的有益效果:本专利技术的并发通信传输数据的方法,可实现不同协议系统服务与MQTT系统服务的并发通信传输数据,采用发布订阅的方式将xmpp服务器与mqtt服务器桥接到一起,实现并发通信传输数据,其主要将两种系统服务在通过连接桥建立连接,进行数据传输通信时需要定义共享订阅主题和发布主题,共享订阅的方式可确保连接桥的连接池中只有一个客户端可以接收到相同的订阅主题。附图说明图1是本专利技术的并发通信传输数据的方法的理论实现架构示意图。图2是本专利技术的并发通信传输数据的方法的流程图。具体实施方式下面结合本专利技术的实施例对本专利技术作进一步的阐述和说明。实施例:如图1所示,一种实现不同协议系统服务与MQTT系统服务并发通信传输数据的方法,假设a为非mqtt协议系统服务,b为mqtt协议系统服务,为了实现a与b之间的数据传输,就需要在a与b之间搭一个连接桥,如图2所示,其具体包括以下步骤:S1.定义全局变量:定义相关连接请求信息变量和相关操作信息变量;S2.构造器:根据请求信息对请求信息变量进行初始化,并通过相关操作对其合法性做出判断并给出对应的回应,对合法的连接请求在连接成功后对相关变量进行初始化及实例化;S3.启用相关线程连接;S4.定义回调函数:在所述步骤S3启用连接中时定义相关回调:S40.定义连接回调,根据连接结果成功与否调用对应的回调;S41.实例化一个监听者对是否连接成功进行监听;S42.实例化一个等待对象,等待监听者监听到连接成功;S43.定义不同的连接成功的回调,根据对应函数中不同连接成功的个数给出对应的回应;S44.定义一个获取随机客户端的函数,获取随机连接;S45.定义一个获取全部连接对象的函数;S46.定义一个布尔型函数,判断失败的连接是否包含连接成功的客户端,根据不同结果返回相应信息;S47.定义一个函数用来打印连接失败的原因,将连接失败的原因存入相关变量中;S48.分别定义发布订阅和取消订阅的函数;S49.基于发布,订阅函数,通过订阅共享主题,连接池的客户端根据主题连接订阅者,由于是共享订阅,每个客户端对于相同的主题只有一个客户端会接收。其中,步骤S49中共享订阅的订阅共享主题具有多个分组,每个分组均代表不同特征的对象具体的,本实施例中将列举一个实现a与b之间的数据传输的具体实施方式,具体包含以下步骤:第一步,采用JAVA编程语言利用其中的java线程,在线程上定义连接池,声明连接池客户端连接数量,采用共享订阅使同一个主题同时只有一个客户端可以收到;第二步,声明全局变量:离线缓存intDISCONNECT_BUFFER_SIZE,MqttConnectOptions类的连接选项connOpts,主机地址host,客户端前缀clientIDPrefix,回调poolCallback,异步客户端ConcurrentHashMap<Integer,MqttAsyncClient>mqttAsyncClientMap,失败连接的阻塞队列LinkedBlockingQueue<Integer>failedConns,失败连接的线程ThreadfailedConnsThread,是否停止失败连接的线程booleanstopFailedConnsThread,连接池大小intpoolSize,离线缓存选项DisconnectedBufferOptionsbufferOpts;第三步,构造器:初始化是否停止失败连接的线程stopFailedConnsThread为false,并初始化主机名,用户名,密码,连接池大小,回调函数,maxInFlight窗口大小,设置各缓存属性比如缓存大小,设置自动重连为true,初始化MqttConnectOptionsconnOpts;第四步,启用连接池:写一个start方法,实例化内存表,调用异步客户端类MqttAsyncClient,并实例化host,getFullClientId(i),持久化内存表persistence,设置回调和缓存选项,开始连接,并验证是否有失败连接,根据判断结果调用连接成功回调或连接失败回调;第五步,启动线程,启用失败连接线程,重新尝试连接连接失败的客户端;第六步,定义回调函数:定义需要调用的回调函数;定义IMqttToken类的connect()方法,传入MqttAsyncClient类的mqttAsyncClient和finalintindex两个参数,然后执行mqttAsyncClient.connect()方法,连接连接选项,成功则调用连接成功的回调,失败则调用失败的回调。mqttAsyncClient.connect()方法要实例化一个IMqttActionListener,通过该实例对象监听是否本文档来自技高网...

【技术保护点】
1.一种并发通信传输数据的方法,可实现不同协议系统服务与MQTT系统服务的并发通信传输数据,其特征在于,具体包含以下步骤:S1.定义全局变量:定义相关连接请求信息变量和相关操作信息变量;S2.构造器:根据请求信息对请求信息变量进行初始化,并通过相关操作对其合法性做出判断并给出对应的回应,对合法的连接请求在连接成功后对相关变量进行初始化及实例化;S3.启用相关线程连接。

【技术特征摘要】
1.一种并发通信传输数据的方法,可实现不同协议系统服务与MQTT系统服务的并发通信传输数据,其特征在于,具体包含以下步骤:S1.定义全局变量:定义相关连接请求信息变量和相关操作信息变量;S2.构造器:根据请求信息对请求信息变量进行初始化,并通过相关操作对其合法性做出判断并给出对应的回应,对合法的连接请求在连接成功后对相关变量进行初始化及实例化;S3.启用相关线程连接。2.根据权利要求1所述的一种并发通信传输数据的方法,其特征在于,还包含步骤S4.定义回调函数:在所述步骤S3启用连接中时定义相关回调。3.根据权利要求2所述的一种并发通信传输数据的方法,其特征在于,所述步骤S4具体包含:S40.定义连接回调,根据连接结果成功与否调用对应的回调;S41.实例化一个监听者对是否连...

【专利技术属性】
技术研发人员:马哲
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1