2013-06-26 331 views
1

下面是我的羣聊的Android代碼:包ID爲null從QuickBlox聊天室接收的消息

/* Sends messages */ 
    public void sendChatMessage(String text) 
    { 
     Message message = muc.createMessage(); 
     message.setBody(text); 
     message.setPacketID("ABC_1"); 
     muc.sendMessage(message); 
    } 

    /* Listens for messages */ 
    public void receiveMessage() 
    { 
     muc.addMessageListener(new PacketListener() { 
       public void processPacket(Packet packet) 
       { 
        final Message message = (Message) packet; 
        log.i("packed id: ", packet.getPacketID()); 
        log.i("message id: ", message.getPacketID()); 
       } 
     }); 
    } 

我在logcat中看到的輸出是:

包ID:空

消息ID:null

請問您爲什麼ID爲空?我在這裏錯過了什麼嗎?

回答

1

沒關係

關於XMPP非標準,房間不處理消息的ID,所以這將是空

下面是一個例子

發送消息給房間:

<message to="[email protected]" id="366" type="groupchat"><body>Hello QuickBlox developer!</body></message> 

收到房間留言:

<message xmlns="jabber:client" type="groupchat" from="[email protected]/298" to="[email protected]/tigase-19912"><body>Hello QuickBlox developer!</body></message> 

在收到的消息沒有ID

ID只在1-1聊天

您可以添加自定義的參數信息,使用只使用http://www.igniterealtime.org/builds/smack/docs/3.2.2/javadoc/org/jivesoftware/smack/packet/Packet.html#setProperty(java.lang.String,java.lang.Object中)設置

http://www.igniterealtime.org/builds/smack/docs/3.2.2/javadoc/org/jivesoftware/smack/packet/Packet.html#getProperty(java.lang.String)

進入收聽者