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

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

Вопрос

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

Это было полезно?

Решение

Механизм приложений Google (Gae) поддерживает XMPP так же, как КЛИЕНТ .

С 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 с простой страницей:

<Ол>
  • HTML-форма для отправки текста
  • HTML-таблица, отображающая список сообщений, полученных и сохраненных в большой таблице.
  • Чтобы проверить ваше приложение:

    <Ол>
  • Создать аккаунт на jabber.org
  • Загрузить Smack
  • Попробуйте отправить сообщение от Smack на yourappid@appspot.com
  • Попробуйте отправить сообщение из приложения Gae на youraccount@jabber.org
  • Если ваш личный XMPP-сервер (openfire) запущен и работает, просто пропустите шаг 1 и используйте свою учетную запись домена для получения сообщения от вашего модного приложения Gae.

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

    Другие советы

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

    Java API
    API Python

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top