Smack MUC邀请函

时间:2014-09-14 03:18:05

标签: android xmpp smack

我有办法使用常规数据包过滤器监听传入的MultiUserChat。

现在我有一个类来处理所有传入的数据包并根据类型处理它们。

例如,如果数据包是消息的实例,则将其添加到数据库中并发送广播。

这就是我在监听传入数据包的方式

public void registerListener(){
    Log.d("XMPP","New thread created for Message Listener");
    Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            Log.d("XMPP","Message Listener Registered");
            PacketFilter filter = new AndFilter(new PacketTypeFilter(Message.class));
            PacketCollector collector = connection.createPacketCollector(filter);
            while (true) {
                Packet packet = collector.nextResult();
                packetManager.handlePacket(packet);
            }
        }
    });
    t.start();
}

1 个答案:

答案 0 :(得分:1)

Smack已经为此提供了一个API:MultiUserChat.addInvitationListener(InvitationListener)

BTW:你的代码中是否有使用PacketCollector而不是PacketListener的原因?我建议在可能的情况下使用PacketListener。