[英]python does not connect to local XMPP server
我正在尝试通过下面的代码连接我的本地XMPP服务器
import xmpp
client = xmpp.Client('localhost',debug=[])
client.connect(server=('localhost',5222))
但我总是得到这样的信息:
查找_xmpp-client._tcp.localhost时发生错误
我已检查端口5222是否已打开(使用telnet)。 (我必须提到本地主机上的防火墙已关闭)现在应该添加到此代码中以使其工作?
此消息(警告,而不是xinox的答案中指出的错误)表示DNS SRV记录查找失败。 DNS SRV记录用于查找与某个域相关联的服务(例如,在这种情况下为localhost
,因此根本不是一个域,这就是查找失败的原因),但是将其责任委托给居住在其他地方的服务器。
例如,如果我在example.net
有一个服务器,制作我的Jabber ID(JID): user@example.net
,但我的XMPP服务器住在chat.example.net
我可以在example.net
上构建一个SRV记录来指向到chat.example.net
。 还有其他方式来委派责任,但这是首选方法。 SRMP记录的XMPP使用在RFC6120§3.2.1中定义。
要真正摆脱这个错误,你可以使用use_srv
kwarg,制作你的初始例子:
import xmpp
client = xmpp.Client('localhost',debug=[])
client.connect(server=('localhost',5222), use_srv=False)
用这个。
client = xmpp.Client('127.0.0.1',debug=[])
client.connect(server=('127.0.0.1',5222))
或者您的IP 192.XXX
我想出了这一点,只记得这是一个警告而不仅仅是一个错误。 python正确连接到openfire XMPP服务器,它工作正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.