读取使用拍击在发布订阅传入消息分组(read incoming Message packets in

2019-08-03 17:33发布

我试图实现使用发布订阅openfire服务器和asmack库。 我已经在这样配置我的节点subscribers必须考虑批准publishers

现在我想读的Message使用下面的代码包,但我没有得到任何数据包。 我想读Message ,因为我想知道每当用户请求发送给出版商获得订阅包。

PacketTypeFilter filter = new  PacketTypeFilter(org.jivesoftware.smack.packet.Message.class);

    PacketListener myListener = new PacketListener(){

        @Override
        public void processPacket(Packet packet) {
            // TODO Auto-generated method stub

            Log.d("PACKET" , "READ");

            if(packet instanceof org.jivesoftware.smack.packet.Message){

                    org.jivesoftware.smack.packet.Message msg = (org.jivesoftware.smack.packet.Message) packet;

            Log.d("MY MESSAGE" , msg.toXML()+ "");


                    }
                }

            };

    cxmpp.addPacketListener(myListener, filter);

所有我想要的是读取传入消息包

Answer 1:

如果你把所有的配置位和您的发布 - 订阅组件正常工作,然后得到一个正常的消息,你会做这样的事情:

ConnectionConfiguration config = new ConnectionConfiguration("ADDRESS",PORT); // service name, also known as XMPP domain of the target server. 
config.setServiceName(this.pubsubServiceAddress);
connection = new XMPPConnection(config);
connection.connect();

PacketFilter filter = new MessageTypeFilter(Message.Type.normal); 

connection.addPacketListener(new PacketListener() { 
    public void processPacket(Packet packet) {
    Message mes = (Message)packet;
        // do your stuff here
    }
}, filter);


文章来源: read incoming Message packets in pubsub using smack