使用twisted和wokkel的聊天机器人

时间:2010-05-01 23:31:50

标签: python twisted xmpp chatbot

我正在使用Twisted和wokkel编写一个聊天机器人,除了机器人定期注销外,一切似乎都在工作。暂时修复我在初始化的每个连接上将状态设置为可用。有谁知道如何防止下线? (我假设如果我每分钟都会继续发送可用的存在,那么机器人不会离线但这看起来太浪费了。)建议有人吗?这是在线代码:

class BotPresenceClientProtocol(PresenceClientProtocol):

    def connectionInitialized(self):
        PresenceClientProtocol.connectionInitialized(self)
        self.available(statuses={None: 'Here'})

    def subscribeReceived(self, entity):
        self.subscribed(entity)
        self.available(statuses={None: 'Here'})

    def unsubscribeReceived(self, entity):
        self.unsubscribed(entity)

提前致谢。

1 个答案:

答案 0 :(得分:3)

如果你正在使用XMPP,我假设是你提到wokkel的情况,那么,根据RFC 3921,适用的标准,你需要定期交换状态信息(事实上,这是XMPP的重大开销,正在研究它的解决方案,但这是现在的最新技术水平。基本上,鉴于客户完全沉默的可能性很大可能是由于客户刚刚离开,“我还在这里”的定期“再保证”似乎是必须的(我不确定那些方向研究工作正在改善这种情况 - 也许客户可能会承诺“至少在接下来的15分钟内”,但鉴于大多数客户都是关于一个变幻无常的人类用户,他们无法改变主意任何时候离开,我都不确定它是否足够有用)。