1

我正在尝试通过下面的代码连接我的本地 XMPP 服务器

import xmpp
client = xmpp.Client('localhost',debug=[])
client.connect(server=('localhost',5222))

但我总是收到这条消息:

查找 _xmpp-client._tcp.localhost 时出错

我检查了端口 5222 是否已经打开(通过使用 telnet)。(我不得不提到本地主机上的防火墙已关闭)现在我应该在这段代码中添加什么以使其工作?

4

2 回答 2

4

此消息(警告,而不是 xinox 的回答中指出的错误)表明 DNS SRV 记录查找失败。DNS SRV 记录用于查找与某个域相关联的服务(例如,localhost在这种情况下,根本不是真正的域,这就是查找失败的原因),但它们将其责任委托给位于其他地方的服务器。

例如,如果我的服务器位于example.net,生成我的 Jabber ID (JID): user@example.net,但我的 XMPP 服务器位于 ,则chat.example.net我可以构建一个 SRV 记录example.net以指向chat.example.net。还有其他方式来委派责任,但这是首选方式。XMPP 对 SRV 记录的使用在RFC 6120 §3.2.1中定义。

要真正摆脱此错误,您可以使用use_srvkwarg,制作您的初始示例:

import xmpp
client = xmpp.Client('localhost',debug=[])
client.connect(server=('localhost',5222), use_srv=False)
于 2016-07-22T14:13:49.657 回答
0

用这个。

client = xmpp.Client('127.0.0.1',debug=[])
client.connect(server=('127.0.0.1',5222))

或您的 IP 192.XXX

于 2013-05-16T06:12:50.477 回答