加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 将GAE XMPP服务实现为现有XMPP服务器的外部组件(例如eja

发布时间:2020-12-15 08:31:11 所属栏目:Java 来源:网络整理
导读:我可能知道你们用什么集成技术来实现现有XMPP服务器的外部组件(例如ejabberd或OpenFire).是通过直接向另一个用户@ externaldomain发送xmpp消息还是使用urlfetch等机制? 解决方法 Google应用引擎(Gae)确实像CLIENT一样支持XMPP. 使用XMPP Gae JAVA client功
我可能知道你们用什么集成技术来实现现有XMPP服务器的外部组件(例如ejabberd或OpenFire).是通过直接向另一个用户@ externaldomain发送xmpp消息还是使用urlfetch等机制?

解决方法

Google应用引擎(Gae)确实像CLIENT一样支持XMPP.

使用XMPP Gae JAVA client功能,您可以:

发信息

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 App向youraccount@jabber.org发送消息

如果您的个人XMPP服务器(openfire)启动并运行,只需跳过步骤1并使用您的域帐户接收来自您的花式Gae应用程序的消息.

看看XMPP message delivery,了解它是如何工作的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读