O MQTT utiliza mensagens pub/sub assíncronas, o que impede a comunicação síncrona do servidor para o dispositivo. O IoT Platform oferece o Revert-RPC (RRPC) sobre MQTT para permitir que seu servidor envie uma requisição a um dispositivo e aguarde uma resposta síncrona.
Glossário
|
Termo |
Descrição |
|
RRPC |
Revert-RPC. O RPC (Remote Procedure Call) adota o modelo cliente/servidor para solicitar serviços remotamente sem exigir conhecimento do protocolo subjacente. O RRPC estende esse modelo para viabilizar a comunicação síncrona de requisição e resposta entre servidor e dispositivo. |
|
Tópico de assinatura RRPC |
Tópico no qual o dispositivo se inscreve para receber mensagens RRPC. Contém um caractere curinga. |
|
Mensagem de requisição RRPC |
Mensagem que o IoT Platform envia ao dispositivo. |
|
Mensagem de resposta RRPC |
Mensagem que o dispositivo envia de volta ao IoT Platform. |
|
ID da mensagem RRPC |
ID exclusivo que o IoT Platform gera para cada chamada RRPC a fim de distinguir as mensagens RRPC. |
Funcionamento do RRPC

O processo ocorre da seguinte forma:
-
(Opcional) Inscreva o dispositivo no tópico RRPC correspondente.
O IoT Platform disponibiliza um mecanismo personalizado de requisição e resposta RRPC baseado em MQTT. Para receber mensagens RRPC, inscreva o dispositivo no tópico e implemente a lógica de processamento de dados no dispositivo.
O dispositivo envia uma instrução SUB para se inscrever em um tópico e receber mensagens do IoT Platform. O Link SDK fornece um exemplo de código de inscrição.
Para implementar o processamento de mensagens RRPC no dispositivo, siga o Exemplo de desenvolvimento do recurso RRPC.
Seu servidor chama a API RRpc do IoT Platform.
O IoT Platform recebe a requisição e encaminha uma mensagem de requisição RRPC ao dispositivo. O corpo da mensagem contém os dados da requisição do servidor e vai para um tópico definido pelo IoT Platform que inclui o ID da mensagem RRPC.
Ao receber a mensagem mobile terminated, o dispositivo envia uma resposta RRPC ao IoT Platform. A resposta vai para um tópico com formato específico que contém o ID da mensagem RRPC da requisição original.
O IoT Platform extrai o ID da mensagem RRPC e o associa à requisição original.
O IoT Platform retorna a resposta ao seu servidor.
(Opcional) Processe a mensagem recebida no tópico inscrito.
Ao chamar a API RRpc:
Se o dispositivo estiver offline, o IoT Platform retornará um erro de dispositivo offline.
Caso o dispositivo não responda em 8 segundos, o IoT Platform retornará um erro de timeout.
Tipos de tópicos
Dois formatos de tópicos estão disponíveis:
Chamar um tópico personalizado (Recomendado): Combina RRPC com tópicos personalizados para atender a diversos cenários.
Chamar um tópico de comunicação RRPC: Utiliza o tópico de comunicação padrão. Possui aplicabilidade limitada e não é recomendado.
O tópico Controlar remotamente um servidor Raspberry Pi demonstra uma implementação prática de RRPC.