OpenFire在XMPP聊天android应用程序中的角色



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

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

还有一些代码我很难理解它的参数:

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

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

任何建议都将不胜感激

正如他们网站上提到的:

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

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

在上面的代码中,"用户名"one_answers"密码"应该是什么?

username-用户名或授权标识

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

那么.setServiceName("jabber.org")呢?

设置要使用的资源。如果resource为null,则服务器将自动为客户端创建一个资源。默认资源为"Smack"。

这个连接在哪里?

这将连接到OpenFire。

我应该在这里设置10.0.2.2吗?因为我使用的是通过测试的localhostandroid模拟器?

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

更多入门指南请点击此处。

现在开始学习XMPP教程。

最新更新