implementar el servicio GAE XMPP como un componente externo a un servidor XMPP existente (por ejemplo, ejabberd u OpenFire)
-
10-07-2019 - |
Pregunta
¿puedo saber qué técnica de integración utilizan para implementar componentes externos en un servidor XMPP existente (por ejemplo, ejabberd u OpenFire)? ¿Es a través del envío de mensajes xmpp a otro usuario @ dominio externo directamente o mediante un mecanismo como urlfetch?
Solución
El motor de aplicaciones de Google (Gae) admite XMPP como CLIENTE .
Con XMPP característica del cliente Gae JAVA puedes:
ENVIAR MENSAJE
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);
}
RECIBIR MENSAJE
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
}
}
Recuerde que los JID solo pueden ser yourappid@appspot.com O foo@yourappid.appspotchat.com porque los dominios de Google aún no son compatibles.
Por ejemplo, podría crear una aplicación Gae de juguete con una página simple con:
- Un formulario html para enviar texto
- Una tabla html que muestra la lista de mensajes recibidos y almacenados en una tabla grande.
Para probar su aplicación:
- Cree una cuenta en jabber.org
- Descargar Smack
- Intenta enviar un mensaje de Smack a yourappid@appspot.com
- Intenta enviar un mensaje desde la aplicación Gae a youraccount@jabber.org
En caso de que tenga su servidor XMPP personal (openfire) en funcionamiento, simplemente omita el paso 1 y use su cuenta de dominio para recibir mensajes de su aplicación Gae.
Eche un vistazo a XMPP entrega de mensajes para comprender cómo funciona esto.
Otros consejos
App Engine admite un subconjunto muy limitado de XMPP. Básicamente, puede enviar mensajes (a través de la API), y puede recibir mensajes (vienen como solicitudes HTTP).
Puede instalar un componente externo en su servidor XMPP existente para enviar y recibir mensajes con el código del motor de su aplicación. Ese componente debería realizar un seguimiento de lo que sea que desee enviar y recibir de su aplicación.