簡體   English   中英

python不連接到本地XMPP服務器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM