我目前正在使用aSmack库为Android安装XMPP客户端。
我想知道的一件事是,如果两个用户分别与另一个人聊天,会发生什么? 例如,第一个客户端将执行:
connection.getChatManager().createChat("testing2@testing.com", new MessageListener() {
@Override
public void processMessage(Chat arg0, Message arg1) {
//.....
}
});
第二个客户端会这样做:
connection.getChatManager().createChat("testing1@testing.com", new MessageListener() {
@Override
public void processMessage(Chat arg0, Message arg1) {
//.....
}
});
服务器上是否会有两个聊天实例,因此消息监听器不会收到任何消息,因为它们将来自不同的聊天?
或者服务器会自动将聊天线程同步到一个,因此消息监听器能够正常工作并能够拦截传入的消息吗?
如果这是第一个场景,那么有什么可能的解决方案来解决这个问题,以便将聊天合并为一个?
编辑:我刚试了一个简单的例子,看起来这是第一种情况,但我不确定是不是因为我做错了什么。
答案 0 :(得分:1)
XMPP服务器不知道您在示例中创建的两个聊天线程,因此无法同步它们。这是设计的。 XMPP聊天只是一组具有相同线程ID的消息节。
我建议阅读RFC 6121 5.2.1。