0

我正在尝试连接到 Tigase 服务器,使用 smack API 在 Java 中实现客户端。

    ConnectionConfiguration config = new ConnectionConfiguration("192.32.104.93", 5222, "ELVES-D463645");
    Connection connection =  new XMPPConnection(config);
    connection.connect();

当代码到达连接时。我得到以下堆栈跟踪。

stream:error (host-unknown)
    at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:214)
    at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44)
    at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:70)
No response from the server.: 
    at org.jivesoftware.smack.NonSASLAuthentication.authenticate(NonSASLAuthentication.java:73)
    at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:230)
    at org.jivesoftware.smack.Connection.login(Connection.java:366)
    at com.directv.xmpp.client.poc.FirstClient.main(FirstClient.java:20)
XMPPException Occured while connecting to server No response from the server.

谁能帮我看看,我哪里出错了。谢谢!

4

5 回答 5

3

我找到了解决方案。

我在错误的地方输入了服务名称和主机名。

并且因为我的服务器是本地托管的。以下代码存根用于与 Tigase 服务器的连接。

ConnectionConfiguration config = new ConnectionConfiguration("localhost", 5222, "yourdomain");

yourdomain应该是之前在安装和配置服务器时输入的域名。

不过谢谢大家的帮助。

于 2013-09-06T23:12:36.767 回答
1
ConnectionConfiguration config = new ConnectionConfiguration("192.32.104.93", 5222, "ELVES-D463645");

ConnectionConfiguration构造函数的第三个参数 serviceName似乎是错误的。我希望这里有一个域(example.com)。

于 2013-09-06T16:00:34.330 回答
0

你甚至没有到达 Tigase 服务器。该错误似乎与 DNS 的配置或传递给 Smack 库的参数有关。我不知道 Smack API,但从您附加的错误来看,您似乎提供了不正确的主机名,或者至少是一个没有正确 DNS 条目的主机名。这很好,如果您也可以提供 IP 地址,您应该仍然能够连接到服务器。

于 2013-09-04T01:09:18.133 回答
0

请尝试以下操作,或检查您的 XMPP 服务器身份验证设置

ConnectionConfiguration config = new ConnectionConfiguration(XMPP_HOST, XMPP_PORT);
config.setCompressionEnabled(false);
config.setSASLAuthenticationEnabled(false);
connection = new XMPPConnection(config);
于 2013-09-04T14:06:28.870 回答
0

这是Smack 4.3.4的代码

 XMPPTCPConnectionConfiguration conf = XMPPTCPConnectionConfiguration.builder()
                .setHostAddress(InetAddress.getByName(host))
                .setXmppDomain(JidCreate.domainBareFrom(Domain))
                .setUsernameAndPassword("username", "password")
                .setPort(5222) 
                .build();
        AbstractXMPPConnection connection = new XMPPTCPConnection(conf);
        connection.connect();
        connection.login();
于 2020-07-02T00:16:53.050 回答