2013-06-26 2 views
1

Ниже мой Android код для группового чата:идентификатор пакета является недействительным в сообщения, полученные от 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: нулевой

message id: null

Не могли бы вы рассказать мне, почему идентификаторы являются нулевыми? Я что-то упустил?

ответ

1

это нормально

Что касается XMPP Standart, номер не обрабатывает идентификатор сообщения, поэтому он будет нулевым

Вот пример

послал сообщение в комнату:

<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)

, чтобы попасть в слушателя