Smack:是否有必要(甚至可能)明确关闭聊天?

时间:2011-03-03 11:59:24

标签: xmpp chat smack

使用Smack库打开XMPP聊天后,是否有必要(甚至可能)明确关闭聊天?

5 个答案:

答案 0 :(得分:3)

你只需删除自己的引用,它最终就会消失。它仅由ChatManager中的弱引用持有,因此最终将获得GC。

如果你不希望在Chat类等待GC的时候再收到任何聊天消息,你应该删除你的听众。

答案 1 :(得分:2)

协议方面,您可以实施XEP-85(聊天状态通知),让对方知道您已关闭聊天。

<message 
    from='juliet@capulet.com/balcony'
    to='romeo@shakespeare.lit/orchard'
    type='chat'>
  <thread>act2scene2chat1</thread>
  <gone xmlns='http://jabber.org/protocol/chatstates'/>
</message>

答案 2 :(得分:1)

如果您使用SMACK API,则无需关闭聊天。当您注销或关闭连接时,它将自动关闭。

答案 3 :(得分:1)

我有一个侧面板,显示所有打开的聊天记录。它允许用户删除任何打开聊天。如果关闭连接,则所有打开的聊天消失,而不仅仅是删除的聊天。我也开玩笑了,似乎没有办法明确地破坏聊天,因为垃圾收集可能需要很长时间来收集对象。

答案 4 :(得分:0)

请关注此bug report,因为目前无法关闭聊天。 但是,由于已经报告并承认它可以在下一版本中修复。