嘿,我正在使用XMPP Smack Library開發聊天應用程序。最近我正在進行羣聊,在發送羣組消息時,一些消息將被丟棄,因此接收者不會從發送方接收消息。它會給我400個不好的要求。Android Smack MUC 400錯誤請求發送羣組聊天消息
它有時正在工作。有時不工作
在這裏我發現這種類型的消息在400壞請求。
<?xml version="1.0" encoding="UTF-8"?>
<message to="[email protected]/Android" id="nXlV6-1144" type="error" from="[email protected]/[email protected]">
<received xmlns="urn:xmpp:receipts" id="nXlV6-1142" />
<error code="400" type="modify">
<bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
</error>
</message>
如果成功發送消息,它會給這種消息。
<?xml version="1.0" encoding="UTF-8"?>
<message to="[email protected]/Android" id="nXlV6-1411" type="groupchat" from="[email protected]/[email protected]">
<body>eyu4u4</body>
<chatDetail xmlns="jabber:x:oob">
<UID>156</UID>
<time>04:20 PM</time>
<user_icon>24_group_icon.jpg</user_icon>
<SentTime>1474368652960</SentTime>
<USERName>vasudev89</USERName>
<user_name>cryan</user_name>
<message>eyu4u4</message>
<type>group</type>
<phone_number>24</phone_number>
</chatDetail>
<request xmlns="urn:xmpp:receipts" />
</message>
我該如何持續發送消息?任何想法? 預先感謝您。
這裏是我的代碼發送睦消息:
public boolean sendGroupMessage(Message message, String strGroupID) {
DeliveryReceiptRequest.addTo(message);
try {
Log.i(TAG, "sendGroupMessage");
//Log.i("JOIN MUC","To join group chat: " + groupChat.getClassId());
// Get the MultiUserChatManager
MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(AbstractXMPPConnection);
// Create a MultiUserChat using an XMPPConnection for a room
MultiUserChat muc = manager.getMultiUserChat(strGroupID + AppWSConstants.XMPP_JID_GROUP_CHAT_SUFFIX);
muc.sendMessage(message);
return true;
} catch (NotConnectedException e) {
e.printStackTrace();
}
return false;
}
HI我認爲這是同一個包的問題,但我仍確認的多SNIP代碼更新用戶發送消息...我也有連接問題,它被斷開很多次 –
我有斷開連接問題,但是當我將它移動到後臺服務時,它被修復了。 還有一件事,如果您使用的是openfire服務器,啓用存檔聊天功能,並且在發送消息「不良請求」後,看看用戶是否斷開連接 也應該使用yourmuc.sendmessage發送組消息,而不是chat.sendmessage。 注意:發送消息時不要指定** TO **或** FROM ** –
我已經更新了我上面的發送代碼。 –