2015-12-28 1 views
0

Dans mon projet actuel, nous essayons d'implémenter une fonctionnalité à l'aide de Node-RED pour les expériences et l'exploration de nouvelles technologies.Implémentation de l'interaction Demande/Réponse dans Node-RED

La fonctionnalité est illustrée comme suit. Ici, le BadgeReader publie ses données en utilisant publish-subscribe à Proximity (il peut être facilement mis en œuvre en utilisant MQTT en Node-Red). Le composant Proximity reçoit des données de BadgeReader et utilise ces données pour interagir avec ProfileDB en utilisant le mode d'interaction request/response. Maintenant, ma question est --- comment pouvons-nous impliquer l'interaction demande/réponse dans Node-RED? (Notez que - requête/réponse peut être mis en œuvre à l'aide MQTT, mais cette question est liée à la fonctionnalité requête-réponse dédiée au nœud rouge?)

enter image description here

Répondre

0

Tous les nœuds de base de données disponibles vous permettent d'envoyer un interroger et recevoir une réponse avant de passer au nœud suivant dans le flux.

Il existe également le nœud de requête http qui fera de même pour un appel HTTP à un service distant.

Vous ne pouvez pas le faire avec les nœuds MQTT Node-RED, car ils démarrent un flux ou interrompent un flux. MQTT est asynchrone et les éditeurs doivent être totalement découplés des abonnés. Il n'y a donc aucun moyen de savoir si un message parvient jamais à un abonné, donc aucun moyen de gérer correctement les cas d'erreur ou les délais. Bien qu'il soit possible de faire une requête/réponse avec MQTT, cette tâche n'est pas la mieux adaptée. Si vous voulez faire cela avec MQTT ou autre chose alors vous devrez peut-être regarder votre propre noeud, il n'y a pas de capacités génériques de requête/réponse dans Node-RED.

P.S. compte tenu de votre flux de questions au cours des derniers jours, vous devriez probablement à la liste de diffusion Node-ROUGE ici:

https://groups.google.com/forum/#!forum/node-red

Il sera mieux adapté pour répondre à vos questions que Stack Overflow