使用twisted和wokkel的聊天机器人

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

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)

提前致谢.

解决方法:

如果您使用的是XMPP(我假设您提到wokkel就是这种情况),那么按照RFC 3921(适用的标准),您确实需要定期交换状态信息(实际上,这是XMPP的大量开销及其解决方案)正在研究中,但这是目前的最新水平).本质上,鉴于客户完全沉默的原因很可能是由于客户即将离开而引起的,因此必须定期进行“我还在这里”这类的“再保险”(我不确定这些方向是什么为了减轻这种情况,我们正在进行研究工作-也许客户可以承诺“至少在接下来的15分钟内到那里”,但是鉴于大多数客户都是善变的人类用户,因此他们不能不停地改变主意无论何时何地,我不确定这是否足够有用.)

上一篇:2021-09-28


下一篇:AI与人,“替代”还是 “共生”