连接到具有XMPPPY XMPP服务器很简单。如何断开我XMPPPY客户对象
from xmpp.client import Client as XMPPClient
self.xmppClient = XMPPClient("jabber.foo.com")
if not self.xmppClient.connect(server="localhost"):
raise IOError('Cannot connect to server.')
if not self.xmppClient.auth("node", "password", "resource"):
raise IOError('Can not auth with server.')
self.xmppClient.RegisterHandler("message", self.messageHandler)
self.xmppClient.sendInitPresence()
但是,有时候我的客户必须强制断开连接,但仍然继续做其他事情。我想确保客户端正确断开 - 套接字不是“闲置”的,服务器资源不会被浪费。
是预期模式给客户只需设置为无,让GC清理对象?
self.xmppClient = None
我在客户端看到“断开的处理程序”,但我看不到如何调用它们。 XMPPPY附带的文档非常糟糕。
任何人有任何的“正道”任何线索断开?
你绝对可以发送一个无法存在,而我这样做。但是,这并不会断开你的客户端(和套接字),正如你所暗示的那样。你确实需要从服务器端正常断开,这是我真正的问题。我会期望一个推论xmpp.Client.Client.connect()(如disconnect()?),但没有一个。 – 2010-10-01 15:01:41
@大卫 - 对不起,我误解了你的问题。不幸的是,我不熟悉XMPPY客户端。我做了一些Google,这是我为断开连接方法发现的最接近的东西:http://xmpppy.sourceforge.net/examples/xsend.py在脚本中,作者特意注释掉了一个client.disconnect()呼叫。此外,如果你看看这个库的基本教程(http://xmpppy.sourceforge.net/basic.html),作者指出它只是离开了Python和TCP/IP层的连接......它是一个“ as-design“,库的作者不提供断开连接方法? – DashK 2010-10-01 18:01:46