我正在使用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分钟内到那里”,但是鉴于大多数客户都是善变的人类用户,因此他们不能不停地改变主意无论何时何地,我不确定这是否足够有用.)