3

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)

前もって感謝します。

4

1 に答える 1

3

XMPP を使用している場合は、RFC 3921wokkelに従って、、適用可能な標準である場合、プレゼンス情報の定期的な交換が必要です (実際、これは XMPP のかなりのオーバーヘッドであり、その解決策が研究されていますが、現時点ではそれが最先端です)。本質的に、クライアントからの完全な沈黙は、そのクライアントが去ったばかりである可能性が高いことを考えると、「私はまだここにいる」というような定期的な「安心」は必須のようです(それらがどの方向にあるのかわかりません)この状況を改善するための研究努力が行われています。おそらく、クライアントは「少なくとも次の 15 分間はそこにいる」ことを確約することができますが、ほとんどのクライアントは気まぐれな人間のユーザーであり、いつでも気が変わるのを止めることはできません。いつでも離れていくので、それが有用であるほどしっかりしているとは思えません)。

于 2010-05-01T23:40:03.073 に答える