Ich habe eine XMPP-Anwendung, wo zwei Clients interagieren (1) ein Bot mit Smack programmiert (Scala/Java) und (2) ein GUI-Chat-Client in strophe programmiert (Javascript).beste Möglichkeit, benutzerdefinierte XML-Elemente in XMPP auszutauschen?
Die App muss benutzerdefinierten XML austauschen (zum Beispiel wie unten dargestellt)
<myPacket>
<response type='sensorData'>
<temperature units='Kelvin'>
234
</temperature>
</response>
</myPacket>
Was ist der beste Weg, um Daten auszutauschen? Im Folgenden sind, was ich tun konnte mit:
1) individuelle XMPP Strophen
2) Einbetten meine XML in derzeit definierten Strophen (zB in Mitteilung oder iq)
3) Für klatschen sie, use the Message.get(set)Property
to read/write custom data.
Nr. 3) ist ausgeschlossen, weil es erfordert, dass beide Clients Java-Objekte verstehen und die gleiche Bibliothek (Smack) verwenden.
Bitte weisen Sie mich auf andere Fragen zu dem gleichen Thema.
[EDIT:] Nach einigen Recherchen fand ich, dass Dataforms (XEP-0004) der einfachste Weg ist, es zu tun, sofern Ihre Bibliothek es unterstützt.
Senden Sie benutzerdefinierte XML-Daten von Ihrem Client mit dem untergeordneten Element in den jeweiligen XMPP-Zeilengruppen mit Ihrem eigenen Namespace. Z.B. ... . Solche Strophen werden wiederum von Ihrem Client-Bot ohne weitere Konfigurationsanforderungen empfangen. –
Danke für den Kommentar. Ich entschied mich schließlich, das untergeordnete Element mit Datenformularen zu verwenden. –
Jus12
Ich fand den harten Weg, dass Datenformate (XEP-004) nicht vollständig in Smack ist. Es ist besser, eine benutzerdefinierte Codierung zu verwenden (z. B. JSON in einer Nachrichtenzeilengruppe). Das haben wir überall gemacht. – Jus12