【问题标题】:Packet id is null in the messages received from QuickBlox chatroom从 QuickBlox 聊天室收到的消息中的数据包 ID 为空
【发布时间】:2013-06-26 21:45:51
【问题描述】:

下面是我的安卓群聊代码:

    /* 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:空

您能告诉我为什么 ID 为空吗?我在这里遗漏了什么吗?

【问题讨论】:

    标签: android asmack quickblox multiuserchat


    【解决方案1】:

    没关系

    关于 XMPP 标准,room 不处理消息 id,所以它将为空

    这是一个例子

    向房间发送消息:

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

    从房间收到消息:

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

    收到的消息中没有 ID

    ID 仅用于 1-1 聊天

    可以给Messages添加自定义参数,使用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)

    进入听众

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 2016-06-29
      • 2014-07-26
      • 2014-10-31
      • 1970-01-01
      相关资源
      最近更新 更多