我在树莓派上运行着一个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)
我也没有任何错误。谁能告诉他们是否曾做过这项工作?
很抱歉,这个问题对其他人来说很基本。
此示例似乎被编写为Twisted Application .tac文件。而不是直接在此文件上使用Python解释器,您应该使用twisted -y运行它。这将为应用程序设置上下文并启动事件循环(反应器)。可以在这里找到更多详细信息:https://twistedmatrix.com/documents/current/core/howto/application.html
还要注意,由于Twisted基于通过事件循环(反应堆)的协作式多任务处理(通常称为异步编程),因此使用time.sleep可能无法达到您期望的方式。相反,您通常希望改为在反应堆上调用callLater方法。