Как получить сообщения чата XMPP, отправленные на другой ресурс?
Например, мой прослушиватель сообщений получает сообщения до тех пор, пока на это сообщение не будет получен ответ от другого ресурса (например, Gmail Google Talk *).1004 *).С этого момента сообщения отправляются этому клиентскому ресурсу, а не моему слушателю.
Я использую библиотеку Smack для Java (ну, на самом деле asmack , котораяэто порт для Android)
После подключения к сервису (серверу Google Talk) я добавляю прослушиватель следующим образом:
connection.addPacketListener(new PacketListener() {
public void processPacket(Packet packet) {
Log.i(TAG, "processPacket: chat");
Message message = (Message) packet;
Log.d(TAG, "Message: " + message.toXML());
if (message.getBody() != null) {
String fromName = StringUtils.parseBareAddress(message.getFrom());
Log.i(TAG, "Got text [" +
message.getBody() +
"] from [" +
fromName +
"]");
}
}
}, filter);
Сначала все работает нормально, я получаю сообщения от Google Talk,Эти сообщения фактически отправляются нескольким клиентам, моему рабочему столу Google Talk, приложению Google Talk для Android и моей реализации.
Но когда я отвечаю на сообщение, скажем, в приложении для настольного компьютера, все последующие сообщения отправляютсяк ресурсу настольного приложения, и я ничего не получил в своей реализации.
Так что я не уверен, как также получать эти сообщения.Приложение Google Talk, кажется, делает это.Оно не отображается как новое сообщение, как оно изначально (до того, как на него ответили), но оно обновляется в ветке приложения Google Talk.
Любая помощь будет отличной!