J'ai une application XMPP où deux clients interagissent (1) un bot programmé avec Smack (Scala/Java) et (2) un client de chat GUI programmé en strophe (Javascript).meilleur moyen d'échanger des éléments XML personnalisés dans XMPP?
L'application a besoin d'échanger XML personnalisés (par exemple, comme indiqué ci-dessous)
<myPacket>
<response type='sensorData'>
<temperature units='Kelvin'>
234
</temperature>
</response>
</myPacket>
Quelle est la meilleure façon d'échanger des données? Voici ce que je pouvais venir avec:
1) coutume XMPP strophes
2) Incorporer mon XML en strophes actuellement définis (par exemple, dans un message ou iq)
3) Pour smack, use the Message.get(set)Property
to read/write custom data.
n ° 3) est exclue car elle nécessite que les deux clients comprennent les objets Java et utilisent la même bibliothèque (Smack).
Veuillez me diriger vers d'autres questions traitant du même problème. Après avoir fait quelques recherches, j'ai trouvé que Dataforms (XEP-0004) est le moyen le plus facile de le faire, à condition que votre bibliothèque le supporte.
Envoyez des données XML personnalisées à partir de votre client à l'aide de l'élément enfant dans les strings XMPP respectifs avec votre propre espace de noms. Par exemple. ... . Cette strophe sera à son tour reçue par votre client bot sans aucun autre besoin de configuration. –
Merci pour le commentaire. J'ai finalement décidé d'utiliser l'élément enfant avec des formes de données. –
Jus12
J'ai trouvé à la dure que les données (XEP-004) ne sont pas complètement complètes dans smack. Il est préférable d'utiliser un codage personnalisé (par exemple, JSON dans une strophe de message). C'est ce que nous avons fini par faire partout. – Jus12