【问题标题】:The role of OpenFire in an XMPP chat android appOpenFire 在 XMPP 聊天 Android 应用中的作用
【发布时间】:2016-08-02 10:45:39
【问题描述】:

我正在尝试通过 Smack 库为我的 android 应用程序创建一个 XMPP 客户端。 目标是在我的应用程序中实现聊天功能时使用 GCM-XMPP。从我一直在阅读的内容来看,我可以使用诸如 ChatManager、Chat 和 Message 之类的 Smack 类来创建用户之间的聊天并添加聊天消息侦听器。另一方面,我发现我可以使用数据包对 ChatManager、Chat 和 Message 类执行相同的操作以创建节。根据我从 GCM 文档中了解到的情况,需要这些节来验证我的应用服务器和 GCM CCS 服务器之间的 ACK 和 NACK 消息。如果我错了,请纠正我。在我看来,一旦我在我的聊天应用程序中实现 GCM 功能,创建这些数据包/节将更加有用。

另外,我还是不明白 OpenFire 的作用。我在我的本地主机中安装了 OpenFire 用于测试目的。对我来说,它更像是一个界面,我可以在其中调试由 Smack 类创建的聊天错误。当我测试我的应用程序聊天功能时,是否应该在我的计算机中打开这个 OpenFire。我已经下载了 OpenFire,它在我的 localhost 数据库中创建了必要的表。

还有一些代码我无法理解它的参数:

XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder();
configBuilder.setUsernameAndPassword("username", "password");
configBuilder.setResource("SomeResource");
configBuilder.setServiceName("jabber.org");
AbstractXMPPConnection connection = new XMPPTCPConnection(configBuilder.build());
connection.connect();
connection.login();

在上面的代码中,“用户名”和“密码”应该是什么。它应该是用于登录我的本地主机的用户名和密码,还是我用来在我的应用程序中将自己标识为聊天者的用户名和密码? .setServiceName("jabber.org") 怎么样?我应该在这里设置 10.0.2.2 ,因为我使用的是通过 android 模拟器测试的 localhost 吗?我应该输入 OpenFire 吗? 当发生这种情况时: connection.connect() ,这个连接连接到哪里? OpenFire 还是本地主机?它在哪里登录?

任何建议将不胜感激

【问题讨论】:

    标签: android google-cloud-messaging localhost chat openfire


    【解决方案1】:

    正如他们的site

    Openfire 是一个实时协作 (RTC) 服务器。它使用唯一 广泛采用的即时通讯开放协议 XMPP(也称为 胡言乱语)。

    为了从应用服务器调用 GCM 服务器,您可以遵循 HTTP 或 XMPP 协议。 HTTP 仅支持下游(gcm 到客户端)消息。 XMPP 支持下游和上游(设备到 gcm,然后从 gcm 到服务器)消息。这就是 Openfire 的用武之地。

    在上面的代码中,“用户名”和“密码”应该是什么?

    username - 用户名或授权标识

    password - 用于验证的密码或令牌

    .setServiceName("jabber.org") 怎么样?

    设置要使用的资源。 如果resource为null,那么服务器会自动为客户端创建一个资源。默认资源是“Smack”。

    此连接连接到哪里?

    这会连接到 OpenFire。

    我应该在这里设置 10.0.2.2,因为我使用的是通过 localhost 测试的 安卓模拟器?

    端口在 XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder() 的 .setPort("8222") 部分中设置。

    更多入门指南here

    现在开始使用 XMPP tutorial

    【讨论】:

      猜你喜欢
      • 2018-02-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2016-06-26
      • 2016-04-03
      • 2017-07-13
      • 1970-01-01
      相关资源
      最近更新 更多