【技术实现步骤摘要】
一种基于MQTT的异步通信转同步通信方法
[0001]本专利技术属于计算机通讯的
,具体涉及一种基于MQTT的异步通信转同步通信方法。
技术介绍
[0002]MQTT(Message Queuing Telemetry Transport)是一种物联网连接协议,它基于“订阅/发布”的异步消息模型。对于需要较小代码占用空间和/或网络带宽资源非常宝贵的远程连接场景非常有用,是专为受限设备和低带宽、高延迟和不可靠网络而设计。
[0003]如专利申请202110909397.6公开了一种用于采集终端的基于MQTT协议的消息收发方法。模型包含消息发送,消息接收两大部分。其中消息框架消息发送分为同步消息发送、异步消息发送,同步消息发:首先调用消息发送接口,判断是否在回调函数中。如果不在回调函数中进行,则会进行MQTT主题格式化,初步的消息格式化,调用消息发送函数将报文消息发出,最后进行日志的打印记录。异步消息发送线程中调用异步发送接口,消息格式化以后将报文消息存入消息队列,然后周期性执行和保活线程从消息队列中周期性获取消息报文,然后发出。消息接收线程接收到消息后有回调函数的会调用回调函数处理,没有回调函数的存到消息队列,然后等待获取。
[0004]然而,这种应用方式具有一定的局限性,需要拓展MQTT的应用方式,以满足其它使用条件及环境的需要。
技术实现思路
[0005]为解决上述问题,本专利技术的首要目的在于提供一种基于MQTT的异步通信转同步通信方法,该方法将MQTT这种基于“订阅/发布” ...
【技术保护点】
【技术特征摘要】
1.一种基于MQTT的异步通信转同步通信方法,其特征在于包括如下步骤:S110:上层业务发送请求,并等待,直到收到响应;S120:通过异步转同步设置进行转换,异步转同步装置是一段软件代码模块,该软件代码模块向上承接同步的请求/响应服务,向下遵循异步的订阅/发布机制;具体包括如下步骤:S1201,接收来自上层的同步请求;S1202,将这个同步请求,通过异步的方式发送给向下处理异步订阅/发布机制的线程,在这个请求转换过程中,随机生成一个字符串序列,作为请求消息的nonce值,其作用是标识消息的唯一性;S1203,向上承接同步请求/响应的服务线程进入阻塞状态,等待来自向下处理异步订阅/发布机制的线程的异步响应;S130:底层基于MQTT的异步通信机制进行通信,其中,异步通信机制包括:MQTT
‑
broker组件,是MQTT消息总线的服务器;MQTT
‑
client组件,通过与MQTT
‑
broker建立连接,各个MQTT
‑
client之间通过消息的订阅/发布实现异步通信,具体步骤包括:S1301步,MQTT
‑
client
‑
B是请求服务的提供方,在初始化时向MQTT
‑
broker订阅topic/S消息;S1302,MQTT
‑
client
‑
A是请求服务的消费方,在初始化时向MQTT
‑
broker订阅topic/R消息;S1303,MQTT
‑
client
‑
A收到来自异步转同步设置的异步请求,立即响应ACK;S1304,MQTT
‑
client
‑
A发布topic/S消息,经MQTT
‑
broker转发给MQTT
‑
clien...
【专利技术属性】
技术研发人员:吴军勇,
申请(专利权)人:深圳市网力软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。