Smack: нужно ли (или даже возможно) чтобы закрыть чат? - PullRequest
2 голосов
/ 03 марта 2011

После открытия чата XMPP с использованием библиотеки Smack, необходимо (или даже возможно) явно закрыть чат?

Ответы [ 5 ]

3 голосов
/ 03 марта 2011

Вы просто отбрасываете свои собственные ссылки на него, и он со временем исчезнет сам по себе.Он поддерживается только слабыми ссылками внутри ChatManager, поэтому в конечном итоге он получит GC.

Вам, вероятно, следует также удалить своих слушателей, если вы не хотите больше получать сообщения чата, пока класс Chat ожидает GC'ed.

2 голосов
/ 03 марта 2011

По протоколу вы можете реализовать 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>
1 голос
/ 27 января 2012

У меня есть боковая панель, которая показывает все открытые чаты.Это позволяет пользователю удалить любой из открытых чатов.Если вы закрываете соединение, все открытые чаты исчезают, а не только тот, который удален.Я тоже осмотрелся, не похоже, что есть способ явно уничтожить чат, так как сбор мусора может занять много времени.

1 голос
/ 03 марта 2011

Нет необходимости закрывать чат, если вы используете SMACK API.Когда вы выходите из системы или закрываете соединение, оно автоматически закрывается.

0 голосов
/ 31 января 2012

Пожалуйста, следуйте этому сообщению об ошибке , потому что в настоящее время невозможно закрыть чат. Но так как об этом было сообщено и признать, это может быть исправлено в следующей версии.

...