XMPP 服务器给出错误“服务器没有响应”

Posted

技术标签:

【中文标题】XMPP 服务器给出错误“服务器没有响应”【英文标题】:XMPP server giving error "No response from server" 【发布时间】:2010-10-06 05:38:24 【问题描述】:

您好,我正在使用 smack.jar 连接到我的 gmail 服务器。但 xmppconnection.connet() 失败,它说服务器没有响应。我附上日志。请帮帮我。

线程“main”中的异常连接失败。服务器无响应: 在 org.jivesoftware.smack.PacketReader.startup(PacketReader.java:164) 在 org.jivesoftware.smack.XMPPConnection.initConnection(XMPPConnection.java:945) 在 org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection.java:904) 在 org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:1415) 在 JabberSmackAPI.login(JabberSmackAPI.java:29) 在 JabberSmackAPI.main(JabberSmackAPI.java:79)

【问题讨论】:

【参考方案1】:

需要明确的是,服务器没有返回此错误,因为您还没有连接到服务器。

可能是配置问题。如果您的服务器没有客户端 DNS SRV 记录(例如 _xmpp-client._tcp.gmail.com),那么您需要将 XMPPConnection 对象传递给带有要连接到您的域的机器名称的 ConnectionConfiguration

这也可能是网络问题(连接、路由、防火墙等)。要对此进行测试,请在命令行上尝试如下命令:

% dig +short _xmpp-client._tcp.gmail.com SRV
5 0 5222 talk.l.google.com.
20 0 5222 talk2.l.google.com.
20 0 5222 talk1.l.google.com.
20 0 5222 talk3.l.google.com.
20 0 5222 talk4.l.google.com.
% telnet talk.l.google.com 5222
Trying 74.125.155.125...
Connected to talk.l.google.com.
Escape character is '^]'.
>

请注意,您输入的是大于号字符。大多数 XMPP 服务器此时会立即断开您的连接,因为您向它们发送了格式不正确的 XML。

如果您遇到网络问题,您会看到如下内容:

Trying 74.125.155.125...
telnet: connect to address 74.125.155.125: Connection refused
telnet: Unable to connect to remote host

【讨论】:

感谢您的回复。其实是防火墙问题。 @SPB,我知道已经有一段时间了,但是您的防火墙问题是什么,因为我们间歇性地收到此错误,并且一些聊天正在中断,并且服务器之间存在防火墙。 检查以确保您的防火墙没有阻止连接、超时连接或吃掉服务器可以发送的 FIN 和 RST 数据包。

以上是关于XMPP 服务器给出错误“服务器没有响应”的主要内容,如果未能解决你的问题,请参考以下文章

使用 smack 的 Android XMPP:服务器没有响应

连接到 facebook 聊天服务器,没有响应

节点服务器没有响应

伪造查看器,服务器没有响应

#2002 - 服务器没有响应(或者没有正确配置本地MySQL服务器的套接字)

#2002 - 服务器没有响应(或者本地 MySQL 服务器的套接字配置不正确)