2014-10-27 55 views
0

我試圖從用戶B向使用用戶名user-A登錄的所有資源發送消息。但是隻有登錄的第一個資源才能獲取該信息。這類似於向用戶內的所有資源廣播存在。有沒有辦法使用sleek-xmpp來做到這一點?sleekxmpp將消息發送到具有相同用戶名的所有資源

我嘗試使用send_message

 self.send_message(mto='[email protected]', 
         mbody='sending - chat message ', 
         mtype='chat') 

但它僅是在記錄的第一資源接收。

我使用的服務器是Openfire。

回答

0

它不是發件人,也不是發件人的服務器,但是收件人的服務器控制着收件人的哪些資源收到的郵件是type='chat'。通常,這是基於收件人資源設置的存在的優先級。

有一些解決方法,雖然:

  • 使用一個type='headline'消息(https://tools.ietf.org/html/rfc6121#section-5.2.2):

    如果 '到' 地址是裸JID,接收服務器應該傳遞消息給所有收件人的可用資源和非負面存在優先權,並且必須將該消息傳遞給至少其中一個資源;

  • 要求收件人使用支持XEP-0280的客戶端。這允許客戶選擇接收每個聊天消息。

  • 如果您訂閱了收件人的存在,則可以向每個資源發送單獨的消息,但在許多方面這是一個非常糟糕的主意(其中之一:如果某些資源可能導致脫機存儲中出現重複同時脫機)。

+0

感謝您的幫助。我嘗試了選項1 - 「標題」以及xep-0280。但它不起作用。只有一個資源正在獲取該消息。 – Knight71 2014-10-27 13:25:25