从 QuickBlox 聊天室收到的消息中的数据包 ID 为空
Posted
技术标签:
【中文标题】从 QuickBlox 聊天室收到的消息中的数据包 ID 为空【英文标题】:Packet id is null in the messages received from QuickBlox chatroom 【发布时间】: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 为空吗?我在这里遗漏了什么吗?
【问题讨论】:
【参考方案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)
进入听众
【讨论】:
以上是关于从 QuickBlox 聊天室收到的消息中的数据包 ID 为空的主要内容,如果未能解决你的问题,请参考以下文章
如果用户不在聊天室中,Android quickblox 如何接收消息