implementar el servicio GAE XMPP como un componente externo a un servidor XMPP existente (por ejemplo, ejabberd u OpenFire)

StackOverflow https://stackoverflow.com/questions/1641959

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?

¿Fue útil?

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:

  1. Un formulario html para enviar texto
  2. Una tabla html que muestra la lista de mensajes recibidos y almacenados en una tabla grande.

Para probar su aplicación:

  1. Cree una cuenta en jabber.org
  2. Descargar Smack
  3. Intenta enviar un mensaje de Smack a yourappid@appspot.com
  4. 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).

API de Java
API de Python

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top