无法连接到 ejabberd 服务器:未知主机异常
Posted
技术标签:
【中文标题】无法连接到 ejabberd 服务器:未知主机异常【英文标题】:could not connect to ejabberd server: unknown host exception 【发布时间】:2014-08-13 04:38:07 【问题描述】:连接到 ejabberd 服务器时出现未知主机异常。
public static final String HOST = "http://54.254.220.129:5280/admin";
public static final int PORT = 5222;
public static final String SERVICE = "localhost";
public static final String USERNAME = "admin@localhost";
public static final String PASSWORD = "########";
ConnectionConfiguration connConfig = new ConnectionConfiguration(HOST, PORT, SERVICE);
XMPPConnection connection = new XMPPConnection(connConfig);
enter code here
try
connection.connect();
Log.i("XMPPChatDemoActivity",
"[SettingsDialog] Connected to "
+ connection.getHost());
catch (XMPPException ex)
Log.e("XMPPChatDemoActivity",
"[SettingsDialog] Failed to connect to "
+ connection.getHost());
Log.e("XMPPChatDemoActivity", ex.toString());
setConnection(null);
任何答案都将是可观的! 谢谢
【问题讨论】:
我不知道为什么这个问题被否决了。我在堆栈溢出中尝试了许多解决方案。但我无法确定我的问题是什么。但是在我的问题得到了一些好的回答之后,我发现了我在代码中犯的错误。感谢团队堆栈溢出和一个建议,如果任何人对问题投反对票,请让他们发表评论,这将更有帮助像我这样的初学者 【参考方案1】:传统的 XMPP 不使用 HTTP
您无法连接到http://54.254.220.129:5280/admin
(这是针对浏览器的!)
您只需要使用 IP 地址
public static final String HOST = "54.254.220.129";
【讨论】:
嗨马丁感谢您的支持。我不知道 XMPP 服务器。你能告诉我如何将 eJabberd 服务器用于我的聊天应用程序。我已经有一个 xmpp 客户端。及以上ip本身包含一个网页。我将 XMPP 服务器安装到 54.254.220.129:5280/admin 。如果我使用 ip 什么是 XMPPConnection 中的 mt SERVICE_NAME 端口 5280 服务于 html 网页,与 XMPP 没有任何关系。使用 XMPP 客户端连接到 5222。我建议您只使用new ConnectionConfiguration("54.254.220.129", 5222);
,这样您现在可以避免使用服务名称。
但现在它显示 XMPPError connected to 54.254.220.129:5222.: remote-server-error(502) XMPPError connected to 54.254.220.129:5222。 -- 引起:java.net.ConnectException: failed to connect to /54.254.220.129 (port 5222): connect failed: ETIMEDOUT (Connection timed out)【参考方案2】:
在您的主机字符串中,您已经写了端口号。所以我认为你只需要写没有端口和管理员的IP地址,比如http://54.254.220.129
。
- 之后尝试连接。并尝试登录。
试试这个;
public static final String HOST = "http://54.254.220.129";
public static final int PORT = 5222;
public static final String SERVICE = "localhost";
public static final String USERNAME = "admin@localhost";
public static final String PASSWORD = "########";
ConnectionConfiguration connConfig = new ConnectionConfiguration(HOST, PORT, SERVICE);
XMPPConnection connection = new XMPPConnection(connConfig);
connection.connect();
connection.login(USERNAME, PASSWORD);
【讨论】:
感谢您的支持,现在我可以连接主机了 还有一件事 5222 是为 C2S 连接保留的。所以只需要 ip 作为主机,没有 http://以上是关于无法连接到 ejabberd 服务器:未知主机异常的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Asmack 连接到我的 ejabberd 服务器