implémentation du service GAE XMPP en tant que composant externe sur un serveur XMPP existant (par exemple, ejabberd ou OpenFire)
-
10-07-2019 - |
Question
puis-je savoir quelle technique d'intégration vous utilisez pour implémenter un composant externe sur un serveur XMPP existant (par exemple, ejabberd ou OpenFire). Est-il possible d'envoyer un message xmpp à un autre utilisateur @ externaldomain directement ou d'utiliser un mécanisme tel que urlfetch?
La solution
Le moteur d'applications Google (Gae) prend en charge XMPP au même titre que CLIENT .
Avec XMPP fonctionnalité du client JAVA de Gae vous pouvez:
ENVOYER UN MESSAGE
JID jid = new JID("youraccount@jabber.org");
Message msg = new MessageBuilder()
.withRecipientJids(jid)
.withBody("Hello i'm a fancy GAE app, how are you?")
.build();
XMPPService xmpp = XMPPServiceFactory.getXMPPService();
if (xmpp.getPresence(jid).isAvailable()) {
SendResponse status = xmpp.sendMessage(msg);
}
RECEVOIR LE MESSAGE
public class XMPPReceiverServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws IOException {
XMPPService xmpp = XMPPServiceFactory.getXMPPService();
Message message = xmpp.parseMessage(req);
JID fromJid = message.getFromJid();
String body = message.getBody();
//Save to Big Table
}
}
N'oubliez pas que les JID peuvent simplement être votredomaine@appspot.com OU foo@votreappid.appspotchat.com car les domaines Google ne sont pas encore pris en charge.
Par exemple, vous pouvez créer une application jouet Gae avec une simple page avec:
- Un formulaire HTML pour envoyer du texte
- Une table HTML qui affiche la liste des messages reçus et stockés dans une grande table.
Pour tester votre application:
- Créer un compte sur jabber.org
- Télécharger Smack
- Essayez d’envoyer un message de Smack à yourappid@appspot.com
- Essayez d'envoyer un message de Gae App à youraccount@jabber.org
Si votre serveur XMPP personnel (openfire) est opérationnel, ignorez simplement l'étape 1 et utilisez votre compte de domaine pour recevoir un message de votre fantastique appli Gae.
Consultez XMPP remise des messages pour comprendre comment cela fonctionne.
Autres conseils
App Engine prend en charge un sous-ensemble très limité de XMPP. En gros, vous pouvez envoyer des messages (via l’API) et en recevoir (ils se présentent sous la forme de requêtes HTTP).
Vous pouvez configurer un composant externe sur votre serveur XMPP existant pour envoyer et recevoir des messages avec le code de votre moteur d'application. Ce composant devrait garder trace de tout ce que vous voulez envoyer et recevoir de votre application.