реализация службы GAE XMPP в качестве внешнего компонента для существующего сервера XMPP (например, ejabberd или OpenFire) - PullRequest
3 голосов
/ 29 октября 2009

Могу ли я знать, какую технику интеграции вы используете для реализации внешнего компонента на существующем сервере XMPP (например, ejabberd или OpenFire). Это происходит через отправку сообщения xmpp другому пользователю @ externaldomain напрямую или с помощью механизма, такого как urlfetch?

Ответы [ 2 ]

6 голосов
/ 02 апреля 2010

Движок приложений Google (Gae) поддерживает XMPP так же, как CLIENT .

С XMPP Gae JAVA клиентом вы можете:

ОТПРАВИТЬ СООБЩЕНИЕ

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

ПОЛУЧЕНИЕ СООБЩЕНИЯ

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

Помните, что JID могут быть просто yourappid@appspot.com ИЛИ foo@yourappid.appspotchat.com потому что домены Google еще не поддерживаются.

Например, вы можете создать игрушечное приложение Gae с простой страницей:

  1. HTML-форма для отправки текста
  2. HTML-таблица, которая отображает список сообщений, полученных и сохраненных в большой таблице.

Чтобы проверить ваше приложение:

  1. Создать аккаунт на jabber.org
  2. Скачать Smack
  3. Попробуйте отправить сообщение от Smack на yourappid@appspot.com
  4. Попробуйте отправить сообщение из Gae App на youraccount@jabber.org

Если ваш личный XMPP-сервер (openfire) запущен и работает, просто пропустите шаг 1 и используйте свою учетную запись домена для получения сообщения от вашего модного приложения Gae.

Ознакомьтесь с XMPP доставкой сообщений , чтобы понять, как это работает.

1 голос
/ 31 октября 2009

App Engine поддерживает очень ограниченное подмножество XMPP. По сути, вы можете отправлять сообщения (через API) и получать сообщения (они приходят как HTTP-запросы).

Java API
Python API

Вы можете подключить внешний компонент на существующем сервере XMPP, чтобы отправлять и получать сообщения с кодом вашего механизма приложения. Этот компонент должен отслеживать все, что вы хотите отправить и получить из своего приложения.

...