【发布时间】: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