سؤال

Below is my Android code for group chat:

    /* 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());
                 }
        });
     }

The output I see in logcat is:

packet id: null

message id: null

Could you please tell me why the IDs are null? Am I missing something here?

هل كانت مفيدة؟

المحلول

it's OK

Regarding XMPP standart, room doesn't handle message id, so it will be null

Here is an example

sent message to room:

 <message to="92_testroom2134@muc.chat.quickblox.com" id="366" type="groupchat"><body>Hello QuickBlox developer!</body></message>

received message from room:

<message xmlns="jabber:client" type="groupchat" from="92_testroom2134@muc.chat.quickblox.com/298" to="298-92@chat.quickblox.com/tigase-19912"><body>Hello QuickBlox developer!</body></message>

no ID in received message

ID only used in 1-1 chat

you can add custom parameters to Messages, just use http://www.igniterealtime.org/builds/smack/docs/3.2.2/javadoc/org/jivesoftware/smack/packet/Packet.html#setProperty(java.lang.String, java.lang.Object) to set

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

to get in listener

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top