Over on Stack Overflow, il y a une question sur l'implémentation de l'interaction demande / réponse sur MQTT. Comme le note une réponse, vous pouvez le faire en publiant la demande sur un sujet et en écoutant la réponse sur un autre jeton inclus dans la demande. C'est un peu gênant, mais ça marche.
Étant donné que MQTT est largement utilisé dans l'IoT, je me demande, y a-t-il eu des tentatives de standardisation de cette interaction de type RPC pour des raisons d'interopérabilité?
Réponses:
Je ne connais pas de telles normes.
Comme indiqué dans les réponses à l'autre question, pub / sub ne se prête pas au RPC mais il peut être plié pour s'adapter.
L'une des forces de MQTT est que la charge utile peut être n'importe quoi, permettant au développeur de faire le meilleur choix pour son projet.
la source
Je ne sais pas quelle est votre exigence pour une méthode de communication RPC standardisée sur MQTT mais j'ai quand même fait une petite recherche et trouvé plusieurs points à vous livrer.
Tout d'abord, sur la méthode standard. Sur un projet RPC Github , le type de description le cloue:
Le point est d'utiliser le modèle de pile (le modèle OSI est une norme) et d'utiliser simplement MQTT comme l'une des couches de la pile.
Ce projet sur json-rpc sur mqtt utilise un protocole standardisé ou au moins bien connu sur MQTT.
À propos de la maladresse, vous n'avez pas à construire le MQTT et le RPC par-dessus, mais à la place, utilisez l'une des bibliothèques liées ou une autre trouvée sur Github.
OK, pour chaque langue, il n'y a pas de base prête sur Github, mais dans ce cas, la conformité devient un critère de planification et peut malheureusement affecter l'ensemble du projet.
la source
Azure IoT Hub a un concept de méthodes directes:
Ceci est implémenté sur MQTT (AMQP n'est pas pris en charge), où
Ils ont inclus cela dans leur SDK, donc les développeurs n'ont pas à se soucier de surveiller spécifiquement le sujet. Vous pouvez implémenter une approche similaire.
Selon d'autres réponses, pub-sub ne se prête pas au RPC, et il n'y a pas de normes, à ma connaissance.
Plus de documentation est ici .
la source