implementazione del servizio GAE XMPP come componente esterno su un server XMPP esistente (ad es. ejabberd o OpenFire)

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

Domanda

posso sapere quale tecnica di integrazione utilizzate da voi per implementare componenti esterni su un server XMPP esistente (ad es. ejabberd o OpenFire). Tramite l'invio del messaggio xmpp a un altro utente @ externaldomain direttamente o l'utilizzo di un meccanismo come urlfetch?

È stato utile?

Soluzione

Google App Engine (Gae) supporta XMPP come CLIENT .

Con XMPP Client Gae JAVA puoi:

INVIA MESSAGGIO

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);               
}

RICEVE MESSAGGIO

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
  }
}

Ricorda che i JID possono essere solo yourappid@appspot.com O foo@yourappid.appspotchat.com perché i domini Google non sono ancora supportati.

Ad esempio, potresti creare un'applicazione Gae giocattolo con una semplice pagina con:

  1. Un modulo html per inviare testo
  2. Una tabella html che mostra l'elenco dei messaggi ricevuti e archiviati in una grande tabella.

Per testare la tua applicazione:

  1. Crea un account su jabber.org
  2. Scarica Smack
  3. Prova a inviare un messaggio da Smack a yourappid@appspot.com
  4. Prova a inviare un messaggio dall'app Gae al tuo account@jabber.org

Nel caso in cui il tuo server XMPP personale (openfire) sia attivo e in esecuzione, salta semplicemente il passaggio 1 e usa il tuo account di dominio per ricevere messaggi dalla tua app Gae di fantasia.

Dai un'occhiata a XMPP consegna dei messaggi per capire come funziona.

Altri suggerimenti

App Engine supporta un sottoinsieme molto limitato di XMPP. Fondamentalmente, puoi inviare messaggi (tramite l'API) e puoi ricevere messaggi (arrivano come richieste HTTP).

API Java
API Python

Potresti creare un componente esterno sul tuo server XMPP esistente, per inviare e ricevere messaggi con il codice del tuo motore di app. Tale componente dovrebbe tenere traccia di qualunque cosa tu voglia inviare e ricevere dalla tua app.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top