0

openfireサーバーとasmackライブラリを使用してpubsubを実装しようとしています。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);

私が望むのは、着信メッセージパケットを読むことだけです

4

1 に答える 1

1

すべての構成ビットと pubsub コンポーネントが正しく機能している場合、通常のメッセージを取得するには、次のようにします。

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);
于 2012-12-25T13:43:15.170 に答える