使用twisted and的聊天机器人

2024-06-01 14:06:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用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)

提前谢谢。在


Tags: selfnone信息here状态deftwisted机器人
1条回答
网友
1楼 · 发布于 2024-06-01 14:06:27

如果您使用XMPP,正如我假设的那样,您提到了wokkel,那么,根据RFC 3921,适用的标准,您确实需要定期交换存在信息(实际上,这是XMPP的一个很大的开销,解决方案正在研究中,但这是目前最先进的技术)。基本上,考虑到客户完全沉默可能是因为客户刚刚离开,定期“保证”这种“我还在这里”似乎是必须的(我不确定这些研究工作采取什么方向来改善这种情况,也许客户可以承诺“至少下一个时间在那里”“15分钟”,但考虑到大多数客户都是一个善变的人类用户,他们在任何时候都无法阻止他们改变主意并离开,我不确定这是否足够可靠,是否有用)。在

相关问题 更多 >