我很难与XMPP(Prosody)建立联系。但是,如果我使用PSI,它可以正常工作并请求您的建议。
以下是我的python的代码片段:
client = xmpp.Client(host)
client.connect(server=(host,port))
client.auth(username, passwd,resource='', sasl=1)
client.sendInitPresence()
在调试模式下:
DEBUG: dispatcher warn Registering protocol "error" as <class 'xmpp.protocol.Protocol'>(http://etherx.jabber.org/streams)
DEBUG: socket sent <?xml version='1.0'?><stream:stream xmlns="jabber:client" to="localhost" version="1.0" xmlns:stream="http://etherx.jabber.org/streams" >
DEBUG: socket error Socket error while receiving data
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/xmpp/transports.py", line 161, in receive
try: received = self._recv(BUFLEN)
error: [Errno 104] Connection reset by peer
DEBUG: client stop Disconnect detected
DEBUG: socket error Socket operation failed
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/xmpp/transports.py", line 161, in receive
try: received = self._recv(BUFLEN)
error: [Errno 104] Connection reset by peer
DEBUG: socket error Socket error while receiving data
DEBUG: client stop Disconnect detected
**Prosody logs :**
Oct 20 23:46:39 c2s94ba718 info Client connected
Oct 20 23:46:39 c2s94ba718 info Client disconnected: ssl handshake failed
Oct 20 23:46:39 c2s94ba718 info Destroying session for (unknown) ((unknown)@(unknown))
Oct 20 23:48:57 c2s96052a0 info Client connected
Oct 20 23:48:57 c2s96052a0 info Client disconnected: ssl handshake failed
Oct 20 23:48:57 c2s96052a0 info Destroying session for (unknown) ((unknown)@(unknown))
对此有任何建议将不胜感激。目标是连接到XMPP服务器并通过python加入MUC。
答案 0 :(得分:0)
当我看到您使用的是Python 2.7时,请确保您已更新到最新版本(2.7.11),因为最近有一些SSL更改可能会破坏大量代码。
答案 1 :(得分:0)
当我没有在服务器端提供证书链时,我在Pidgin(libpurple 2.10.11)中出现了这个错误。
我通过在服务器上的证书末尾添加CA-bundle(即中间证书)解决了这个问题:
cat /path/to/ica.crt >> /path/to/prosody.crt
另见https://prosody.im/doc/certificates#certificate_chains了解更多信息