Почему я получаю эту ошибку при использовании client.disconnect() для отключения (используя python xmpppy)?

Я нашел обсуждение здесь: Как мне отключить мой клиентский объект XMPPPY? и в заключение говорится, что.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

Этот код сервера взят с сервера gcm, реализованного с использованием примера кода Python по адресу https://developer.android.com/google/gcm/ccs.html

Я реализовал это, потому что мой сервер перестал получать сообщения через некоторое время (SEND все еще в порядке) - я подумал, что у меня может быть слишком много активных соединений. Просто сообщения, отправленные на сервер, не принимаются постоянно. Это еще одна проблема, с которой я еще не разобрался.

1 ответ

Решение

Я перешел на Java для реализации кода. Там все отлично работает. Наиболее вероятная причина заключается в том, что документация является беспорядком, и функция отключения, вероятно, не определена должным образом. Само собой разумеется, что создание этой библиотеки было хорошим усилием в любом случае!

Другие вопросы по тегам