CN108429665A - 一种并发通信传输数据的方法 - Google Patents
一种并发通信传输数据的方法 Download PDFInfo
- Publication number
- CN108429665A CN108429665A CN201810240810.2A CN201810240810A CN108429665A CN 108429665 A CN108429665 A CN 108429665A CN 201810240810 A CN201810240810 A CN 201810240810A CN 108429665 A CN108429665 A CN 108429665A
- Authority
- CN
- China
- Prior art keywords
- connection
- function
- transmission data
- communication transmission
- concurrent communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/70—Services for machine-to-machine communication [M2M] or machine type communication [MTC]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种并发通信传输数据的方法,包含以下步骤:S1.定义全局变量:定义相关连接请求信息变量和相关操作信息变量;S2.构造器:根据请求信息对请求信息变量进行初始化,并通过相关操作对其合法性做出判断并给出对应的回应,对合法的连接请求在连接成功后对相关变量进行初始化及实例化;S3.启用相关线程连接。本发明的并发通信传输数据的方法,采用发布订阅的方式将xmpp服务器与mqtt服务器桥接到一起,实现并发通信传输数据。
Description
技术领域
本发明涉及计算机不同协议系统服务与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线程,在线程上定义连接池,声明连接池客户端连接数量,采用共享订阅使同一个主题同时只有一个客户端可以收到;
第二步,声明全局变量:离线缓存int DISCONNECT_BUFFER_SIZE,MqttConnectOptions类的连接选项connOpts,主机地址host,客户端前缀clientIDPrefix,回调poolCallback,异步客户端ConcurrentHashMap<Integer,MqttAsyncClient>mqttAsyncClientMap,失败连接的阻塞队列 LinkedBlockingQueue<Integer>failedConns,失败连接的线程Thread failedConnsThread,是否停止失败连接的线程boolean stopFailedConnsThread,连接池大小int poolSize,离线缓存选项DisconnectedBufferOptions bufferOpts;
第三步,构造器:初始化是否停止失败连接的线程stopFailedConnsThread 为false,并初始化主机名,用户名,密码,连接池大小,回调函数,maxInFlight 窗口大小,设置各缓存属性比如缓存大小,设置自动重连为true,初始化 MqttConnectOptionsconnOpts;
第四步,启用连接池:写一个start方法,实例化内存表,调用异步客户端类MqttAsyncClient,并实例化host,getFullClientId(i),持久化内存表 persistence,设置回调和缓存选项,开始连接,并验证是否有失败连接,根据判断结果调用连接成功回调或连接失败回调;
第五步,启动线程,启用失败连接线程,重新尝试连接连接失败的客户端;
第六步,定义回调函数:定义需要调用的回调函数;定义IMqttToken类的 connect()方法,传入MqttAsyncClient类的mqttAsyncClient和final int index 两个参数,然后执行mqttAsyncClient.connect()方法,连接连接选项,成功则调用连接成功的回调,失败则调用失败的回调。mqttAsyncClient.connect()方法要实例化一个IMqttActionListener,通过该实例对象监听是否连接成功。实例化一个IMqttToken为mqttToken,该实例化对象等待IMqttActionListener监听到连接完成。
定义一个连接成功的回调,只要有一个客户端连接成功,就返回true。再定义一个连接成功的回调,全部客户端连接成功才返回true。定义一个获取随机客户端的函数,获取随机连接。定义一个获取全部客户端id的函数。定义一个布尔型的函数offerFailedConns,判断失败的连接是否包含连接成功的客户端, 是则返回true,否则返回客户端id。定义connectionLost用来打印连接失败的原因,将连接失败的原因存在mqttAsyncClientMap中。接下来再分别定义发布,订阅和取消订阅的函数,基于发布,订阅函数,通过订阅共享主题(比如 $share/<group>/topic),连接池的客户端会根据主题连接订阅者,由于是共享订阅,每个客户端对于相同的主题只有一个客户端会接收。
其中,以上为一个线程处理,实际中可多个线程处理,多线程处理只需启用需要的线程数量即可。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (4)
1.一种并发通信传输数据的方法,可实现不同协议系统服务与MQTT系统服务的并发通信传输数据,其特征在于,具体包含以下步骤:
S1.定义全局变量:定义相关连接请求信息变量和相关操作信息变量;
S2.构造器:根据请求信息对请求信息变量进行初始化,并通过相关操作对其合法性做出判断并给出对应的回应,对合法的连接请求在连接成功后对相关变量进行初始化及实例化;
S3.启用相关线程连接。
2.根据权利要求1所述的一种并发通信传输数据的方法,其特征在于,还包含步骤S4.定义回调函数:在所述步骤S3启用连接中时定义相关回调。
3.根据权利要求2所述的一种并发通信传输数据的方法,其特征在于,所述步骤S4具体包含:
S40.定义连接回调,根据连接结果成功与否调用对应的回调;
S41.实例化一个监听者对是否连接成功进行监听;
S42.实例化一个等待对象,等待监听者监听到连接成功;
S43.定义不同的连接成功的回调,根据对应函数中不同连接成功的个数给出对应的回应;
S44.定义一个获取随机客户端的函数,获取随机连接;
S45.定义一个获取全部连接对象的函数;
S46.定义一个布尔型函数,判断失败的连接是否包含连接成功的客户端,根据不同结果返回相应信息;
S47.定义一个函数用来打印连接失败的原因,将连接失败的原因存入相关变量中;
S48.分别定义发布订阅和取消订阅的函数;
S49.基于发布订阅函数,通过订阅共享主题,连接池的客户端根据主题连接订阅者。
4.根据权利要求3所述的一种并发通信传输数据的方法,其特征在于,所述步骤S49中共享订阅的订阅共享主题具有多个分组,每个分组均代表不同特征的对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810240810.2A CN108429665B (zh) | 2018-03-22 | 2018-03-22 | 一种并发通信传输数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810240810.2A CN108429665B (zh) | 2018-03-22 | 2018-03-22 | 一种并发通信传输数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108429665A true CN108429665A (zh) | 2018-08-21 |
CN108429665B CN108429665B (zh) | 2020-12-15 |
Family
ID=63159382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810240810.2A Active CN108429665B (zh) | 2018-03-22 | 2018-03-22 | 一种并发通信传输数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108429665B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109544789A (zh) * | 2019-01-23 | 2019-03-29 | 小雨科技(上海)有限公司 | 一种自动并发出货系统 |
CN110336736A (zh) * | 2019-05-27 | 2019-10-15 | 四川长虹电器股份有限公司 | 基于mqtt服务器集群实现共享订阅的方法 |
CN111935028A (zh) * | 2020-09-21 | 2020-11-13 | 浙江百应科技有限公司 | 一种基于路由模式、mqtt协议的iot集群通讯方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104836723A (zh) * | 2015-03-31 | 2015-08-12 | 青岛海尔智能家电科技有限公司 | 基于mqtt主题订阅机制的通信方法以及接入网关 |
US20160248871A1 (en) * | 2015-02-20 | 2016-08-25 | Convida Wireless, Llc | Message bus service directory |
US20160366111A1 (en) * | 2015-06-09 | 2016-12-15 | Intel Corporation | System, Apparatus and Method for Managing Lifecycle of Secure Publish-Subscribe System |
US20170104792A1 (en) * | 2015-10-08 | 2017-04-13 | Verizon Patent And Licensing Inc. | Establishing media sessions via mqtt and sip |
CN107491314A (zh) * | 2017-08-30 | 2017-12-19 | 四川长虹电器股份有限公司 | 基于读写锁算法对hbase实时数据无障碍写处理方法 |
-
2018
- 2018-03-22 CN CN201810240810.2A patent/CN108429665B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160248871A1 (en) * | 2015-02-20 | 2016-08-25 | Convida Wireless, Llc | Message bus service directory |
CN104836723A (zh) * | 2015-03-31 | 2015-08-12 | 青岛海尔智能家电科技有限公司 | 基于mqtt主题订阅机制的通信方法以及接入网关 |
US20160366111A1 (en) * | 2015-06-09 | 2016-12-15 | Intel Corporation | System, Apparatus and Method for Managing Lifecycle of Secure Publish-Subscribe System |
US20170104792A1 (en) * | 2015-10-08 | 2017-04-13 | Verizon Patent And Licensing Inc. | Establishing media sessions via mqtt and sip |
CN107491314A (zh) * | 2017-08-30 | 2017-12-19 | 四川长虹电器股份有限公司 | 基于读写锁算法对hbase实时数据无障碍写处理方法 |
Non-Patent Citations (3)
Title |
---|
HONEYLIFE: "基于MQTT的推送,连接服务器问题", 《CSDN,HTTPS://BLOG.CSDN.NET/HONEYLIFE/ARTICLE/DETAILS/73863521》 * |
曹敏峰等: "MQTT与ALLJoyn实现智能家电联动和高并发", 《2015年中国家用电器技术大会论文集》 * |
长安快马: "emqtt试用(二)验证emq和mosquito的共享订阅", 《BBSMAX,HTTPS://WWW.BBSMAX.COM/A/RV57BOVJJP/》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109544789A (zh) * | 2019-01-23 | 2019-03-29 | 小雨科技(上海)有限公司 | 一种自动并发出货系统 |
CN109544789B (zh) * | 2019-01-23 | 2024-05-14 | 福历科技(上海)有限公司 | 一种自动并发出货系统 |
CN110336736A (zh) * | 2019-05-27 | 2019-10-15 | 四川长虹电器股份有限公司 | 基于mqtt服务器集群实现共享订阅的方法 |
CN110336736B (zh) * | 2019-05-27 | 2021-04-06 | 四川长虹电器股份有限公司 | 基于mqtt服务器集群实现共享订阅的方法 |
CN111935028A (zh) * | 2020-09-21 | 2020-11-13 | 浙江百应科技有限公司 | 一种基于路由模式、mqtt协议的iot集群通讯方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108429665B (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU714600B2 (en) | Network-independent connection management | |
US7962624B2 (en) | System and method for collaborative processing of distributed applications | |
CN113163277B (zh) | 光网络单元带宽管理方法、装置、电子设备及存储介质 | |
CN111163130B (zh) | 一种网络服务系统及其数据传输方法 | |
US20060167897A1 (en) | Administration of a broker-based publish/subscribe messaging system | |
CN108429665A (zh) | 一种并发通信传输数据的方法 | |
CN113127192B (zh) | 一种多个服务共享同一个gpu的方法、系统、设备及介质 | |
CN110278256B (zh) | 区块链节点接入上链方法、相关设备及系统 | |
KR101157039B1 (ko) | Ddsb 통신 시스템 및 방법 | |
CN108933847A (zh) | 一种地址快速分配的方法及装置 | |
CN113900837A (zh) | 算力网络处理方法、装置、设备及存储介质 | |
US9473316B2 (en) | Resource consumption reduction via meeting affinity | |
CN115883669A (zh) | 一种数据分发方法、系统、设备和介质 | |
CN106357654B (zh) | 远程过程调用方法、装置及通信系统 | |
WO2024055845A1 (zh) | 渲染任务处理方法、装置、设备和介质 | |
CN113596105B (zh) | 内容的获取方法、边缘节点及计算机可读存储介质 | |
CN113452948B (zh) | 会议终端的控制方法、装置、设备及存储介质 | |
CN110399573A (zh) | 一种信息处理方法、装置、设备及计算机可读存储介质 | |
US6173319B1 (en) | Using a systems network architecture logical unit activation request unit as a dynamic configuration definition in a gateway | |
US6389465B1 (en) | Using a systems network architecture logical unit activation request unit as a dynamic configuration definition in a gateway | |
CN108964941A (zh) | 一种建立临时会话的方法和系统 | |
CN106408793A (zh) | 一种适用于atm业务的业务组件共享方法及系统 | |
CN112995333B (zh) | 一种远程文件激活方法、系统及相关装置 | |
KR100297256B1 (ko) | 클라이언트-서버통신구조의지능망서비스시스템에서고객관리요구분산처리방법 | |
KR100243679B1 (ko) | 다지점 접속 제어 장치내의 회의 제어부에서의 쓰레드간 통신방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |