这是关于帖子 here
我能够将我的 PC 连接到本地的本地 tigase 服务器设置(我正在使用 Smack API)。现在,当我想通过 Wi-Fi 将 Android 手机连接到该服务器时,我遇到了问题。我可以使用客户端 Beem for android 连接到本地服务器。服务器的 XMPP 域名是我的 PC 名称“mwbn43-1”,IP 地址是“192.168.0.221”(我可以从安卓终端模拟器)。在 Beem 设置中有一个高级选项,我可以在其中指定我想要连接的服务器(我已将其作为 IP 地址给出)。如果我不设置此选项,我将无法连接。现在这里是我用于我的 android 客户端的代码。
XMPPConnection.DEBUG_ENABLED = true;
ConnectionConfiguration config = new ConnectionConfiguration("mwbn43-1",5222);
//ConnectionConfiguration config = new ConnectionConfiguration("192.168.0.221",5222);
config.setSASLAuthenticationEnabled(false);
config.setCompressionEnabled(false);
XMPPConnection xmpp = new XMPPConnection(config);
try {
xmpp.connect();
xmpp.login("admin@mwbn43-1", "tigase");
String host = xmpp.getHost();
String id = xmpp.getConnectionID();
int port = xmpp.getPort();
boolean i = false;
i = xmpp.isConnected();
if(i)
{answer = "Connected to " + host + " via port " + port + " with ID " + id;
answerfield.setText(answer);}
}//end try
catch (XMPPException e) {
answerfield.setText("Failed to connect");
Log.v(TAG, "Failed to connect to " + xmpp.getHost());
e.printStackTrace();
我还可以借助此代码连接到 google talk 服务器。在与本地服务器建立连接时,我尝试提供 IP 地址和主机名进行连接。当我提供 IP 地址(192.168.0.221)时,我得到带有流的“服务器错误无响应”:错误(主机未知),当我提供主机名(mwbn43-1)时,我得到主机未解析的“远程服务器超时(504)”。
我查看了 Beem 的代码,看看它是如何与服务器连接的,但找不到太多。我也给了用户互联网权限。谁能告诉我应该添加哪些代码行来与本地服务器通信.
最佳答案
尝试 3 个参数的 ConnectionConfiguration 构造函数。它让您声明主机、端口和域。主机和域不必是相同的值。在你的情况下,我猜:
ConnectionConfiguration config =
new ConnectionConfiguration("192.168.0.221",5222,"mwbn43-1");
关于android - 无法将 Android 客户端与本地 XMPP 服务器连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3024335/