如何在两个用户之间同步XMPP聊天线程?

时间:2014-04-04 10:33:28

标签: xmpp smack asmack

我目前正在使用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) {
                                //.....
            }
        });

服务器上是否会有两个聊天实例,因此消息监听器不会收到任何消息,因为它们将来自不同的聊天?

或者服务器会自动将聊天线程同步到一个,因此消息监听器能够正常工作并能够拦截传入的消息吗?

如果这是第一个场景,那么有什么可能的解决方案来解决这个问题,以便将聊天合并为一个?

编辑:我刚试了一个简单的例子,看起来这是第一种情况,但我不确定是不是因为我做错了什么。

1 个答案:

答案 0 :(得分:1)

XMPP服务器不知道您在示例中创建的两个聊天线程,因此无法同步它们。这是设计的。 XMPP聊天只是一组具有相同线程ID的消息节。

我建议阅读RFC 6121 5.2.1