我正在用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分钟”,但考虑到大多数客户都是一个善变的人类用户,他们在任何时候都无法阻止他们改变主意并离开,我不确定这是否足够可靠,是否有用)。在相关问题 更多 >
编程相关推荐