如何使用twised和wokkel在openfire上以用户身份登录?

问题描述 投票:0回答:1

我在树莓派上运行着一个openfire(4.4.2)服务器。我已经配置了域名和路由器。现在,我希望我的一个用户连接到服务器,并且我希望看到他们在服务器上的状态为“可用”。

当我运行以下代码时,不会发生这种情况,实际上openfire admin consle告诉我我的用户以前从未登录过。

from twisted.application import service
from twisted.words.protocols.jabber.jid import JID
from wokkel import client, xmppim
import time

jid=JID("[email protected]")
password = 'pass'

application = service.Application('XMPP client')

xmppClient = client.XMPPClient(jid, password)
xmppClient.setServiceParent(application)

presence = xmppim.PresenceProtocol()
presence.setHandlerParent(xmppClient)
presence.available()

time.sleep(100)

我也没有任何错误。谁能告诉他们是否曾做过这项工作?

很抱歉,这个问题对其他人来说很基本。

python xmpp twisted openfire wokkel
1个回答
0
投票

此示例似乎被编写为Twisted Application .tac文件。而不是直接在此文件上使用Python解释器,您应该使用twisted -y运行它。这将为应用程序设置上下文并启动事件循环(反应器)。可以在这里找到更多详细信息:https://twistedmatrix.com/documents/current/core/howto/application.html

还要注意,由于Twisted基于通过事件循环(反应堆)的协作式多任务处理(通常称为异步编程),因此使用time.sleep可能无法达到您期望的方式。相反,您通常希望改为在反应堆上调用callLater方法。

© www.soinside.com 2019 - 2024. All rights reserved.