Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

implementing GAE XMPP service as an external component to an existing XMPP server (e.g. ejabberd or OpenFire)

may i know what integration technique that you folks use to implement external component to an existing XMPP server (e.g. ejabberd or OpenFire) . Is it through sending xmpp message to another user@externaldomain directly or using mechanism like urlfetch?

like image 281
cometta Avatar asked Nov 17 '25 19:11

cometta


1 Answers

Google app engine (Gae) does support XMPP just as CLIENT.

With XMPP Gae JAVA client feature you can:

SEND MESSAGE

JID jid = new JID("[email protected]");
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);               
}

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

Remember that JIDs can just be [email protected] OR [email protected] because Google domains are not supported yet.

For example, you could craft a toy Gae application with a simple page with:

  1. An html form to send text
  2. An html table that display the list of messages received and stored to big table.

To test your application:

  1. Create an account on jabber.org
  2. Download Smack
  3. Try to send a message from Smack to [email protected]
  4. Try to send a message from Gae App to [email protected]

In case you have your personal XMPP server (openfire) up and running, simply skip step 1 and use your domain account to receive message from your fancy Gae App.

Have a look to XMPP message delivery to understand how this works.

like image 85
systempuntoout Avatar answered Nov 20 '25 09:11

systempuntoout



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!