使用client.disconnect()断开连接时(使用python xmpppy),为什么会出现此错误?

时间:2014-12-26 13:13:11

标签: android python google-cloud-messaging server xmpppy

我在这里找到了讨论:How do I disconnect my XMPPPY client object?并且最后说.disconnect()是正确的方法。

这是代码:

while True:
        try:
                client.Process(5)
                if not client.isConnected:
                        client.reconnectAndReauth()
        except KeyboardInterrupt:
                client.disconnect()
                break;
        flush_queued_messages()

这是我按^ C

时收到的错误
msg keys:  [u'message_type', u'from', u'message_id']
DEBUG: socket       got    
DEBUG: socket       got    
DEBUG: socket       got    
^C DEBUG: socket       sent  </stream:stream>
DEBUG: socket       error Socket error while receiving data
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/xmpp/transports.py", line 146, in receive
    try: received = self._recv(BUFLEN)
SSLError: [Errno 8] _ssl.c:1415: EOF occurred in violation of protocol
DEBUG: client       stop  Disconnect detected
DEBUG: socket       error Socket operation failed

此服务器代码来自使用https://developer.android.com/google/gcm/ccs.html

中的python示例代码实现的gcm服务器

我实现了这个,因为我的服务器在一段时间后停止接收消息(SEND仍然没问题) - 我想我可能有太多活动连接。只是发送到服务器的消息不能一致地接收。这是我还没想到的另一个问题。

1 个答案:

答案 0 :(得分:0)

我已经转移到Java来实现代码。它在那里工作正常。最可能的原因是文档很乱,断开功能可能没有很好地定义。 不言而喻,无论如何创建该库都是一件好事!