注:想提一提这个,谁想要做什么,在这个线程提及。如果您不熟悉XMPP协议和节,可能会错过一些需要的信息来设置正确的状态。 xmpppy模块文档似乎没有明确说明设置存在的步骤。
设置初始状态是最简单的,如此线程中以前的帖子所示。它设置用户可用的默认存在(类型)。不确定默认的“状态”和“显示”状态是什么,假设为空白或“可用”。
但是,当通过定义一个新的状态对象来设置新的状态以发送状态时,如果您在此处初始化默认值(无参数)的对象,则要发送的状态对象(或节)不完整因为它没有定义合适的存在“类型”。因此,根据您使用的XMPP服务器,它可能会或可能不会正确地进行设置。
的正确方法来初始化新的存在状态的对象会是这样的:
offPres = xmpp.Presence(typ='unavailable',show='unavailable',status='unavailable')
或只是简单地下面,如果“可用/在线”和“不可用/离线”之间切换W/O登录并关闭XMPP IM会话,我们不关心显示状态/显示状态(即您看到的与状态关联的标签,如“离线 - 离开”与“离线”)。
offPres = xmpp.Presence(typ='unavailable')
对于像DND自定义状态,离开,外出就餐等,这变得有点棘手。我自己并不十分熟悉XMPP,但假设您将状态指定为状态并显示状态值(例如DND,Away),同时将呈现类型设置为“可用”或“不可用”,具体取决于您希望以这种方式出现还是不。
并且基于xmpppy文档,您只能在对象初始化时指定存在类型,之后不能更改它。但是您可以在初始化后更改状态并显示状态对象的状态。这是完成的原始帖子在这里显示。对于显示状态,有一个匹配的setShow方法就像setStatus。
发送状态与原始帖子中的状态相同。
pres.getStatus()返回什么? – Xavier 2010-03-18 22:10:40
这似乎返回new_status的内容,在这种情况下,“等等等等等等”。 – snostorm 2010-03-18 22:18:44