обрабатывать отключение клиента с сервером openfire, если клиент простаивает 5 минут - PullRequest
0 голосов
/ 30 декабря 2011

Я написал демо-версию о беседе с другими клиентами с pyxmpp2 when, но когда клиент простаивает около 5 минут, сервер отключается от клиента, openfire не может настроить время ожидания, поэтому я решил отправить сообщение о присутствии через 5 минут, проблема озадачивает меня, когда отправить сообщение prensense?

import pyxmpp2

class EchoBot(EventHandler, XMPPFeatureHandler):
    """Echo Bot implementation."""
    def __init__(self, my_jid, settings):
        version_provider = VersionProvider(settings)
        self.client = Client(my_jid, [self, version_provider], settings)
    @event_handler(AuthorizedEvent)
    def handle_authorized(self,event):
        presence = Presence(to_jid ="....",stanza_type = "available")
        self.client.stream.send(presence)
    def run(self):
        """Request client connection and start the main loop."""
        self.client.connect()
        self.client.run()
    def disconnect(self):
        """"""
        self.client.disconnect()
    def keepconnect(self):
        presence = Presence(to_jid ="....",stanza_type = "available")
        self.client.stream.send(presence)
        print "send presence"
....
bot = McloudBot(JID(mcloudbotJID), settings)
try:
        bot.run()        
        t = threading.Thread(target=bot.run())
        timer=threading.Timer(5,bot.keepconnect())
        t.start()
        timer.start()
except KeyboardInterrupt:
        bot.disconnect()

, но, похоже, не работает ...

1 Ответ

0 голосов
/ 13 февраля 2012

Извлечение

http://community.igniterealtime.org/docs/DOC-2053

Здесь подробно описано свойство бездействия рассоединения в OF, для которого можно установить значение в миллисекундах

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

Вы можете реализовать отправку пакетов ping или heartbeat в своем клиенте, как упоминалось выше.Может быть, проверить реализацию pidgin IQ запросов пробелов.

Надеюсь, это направит вас в правильном направлении.

Джеймс

...