注:想提一提這個,誰想要做什麼,在這個線程提及。如果您不熟悉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