Tôi là người dùng mới trên stack, nhưng tôi gặp sự cố với MultiUserChat trong thư viện aSmack 3.2.1 dành cho Android. Tôi đang sử dụng máy chủ "gtalk.google.com". Đó là một ví dụ đơn giản và I'am chỉ có một trong phòng:XMPP aSmack Máy chủ MultiUserChat tiếp tục gửi các tin nhắn đã nhận
String room="[email protected]";
MultiUserChat muc = new MultiUserChat(connection,room);
muc.join(userNameInRoom);
muc.addMessageListener(new PacketListener()
{
@Override
public void processPacket(Packet packet)
{
...
}
});
Sau:
muc.sendMessage("Text message");
Trong Log:
DEBUG/SMACK(281): 06:46:29 PM SENT (1140866576): <message id="gsMe7-18"
to="[email protected]" type="groupchat"><body>Text message
</body></message>
DEBUG/SMACK(281): 06:46:29 PM RCV (1140866576): <message
from="[email protected]/userNameInRoom" to="userName"
type="groupchat"><body>Text message</body></message>
Kết quả: "Tin nhắn văn bản" và nó là đúng, nhưng sau đó:
Tôi lại nhận được "Tin nhắn văn bản" với sự hiện diện:
DEBUG/SMACK(281): 06:54:12 PM RCV (1140866576): <presence
from="[email protected]/userNameInRoom" to="userName"><x xmlns=
"vcard-temp:x:update"><photo/></x><x xmlns="http://jabber.org/protocol/muc#user">
<item affiliation="owner" role="moderator"/><status code="110"/></x></presence>
DEBUG/SMACK(281): 06:54:12 PM RCV (1140866576): <message
from="[email protected]/userNameInRoom" to="userName"
type="groupchat"><body>Text message</body><delay stamp="2012-02-15T17:46:31Z"
from="[email protected]" xmlns="urn:xmpp:delay"/><x
stamp="20120215T17:46:31" from="[email protected]"
xmlns="jabber:x:delay"/></message>
Và tôi đã nhận được thông tin đó bất cứ khi nào máy chủ gửi các sự hiện diện cho tôi. Nó tiếp tục vô cùng với khoảng thời gian ~ 5 phút. Và Có trong 30 phút tôi đã nhận được ~ 6 tin nhắn "Tin nhắn văn bản". Nếu tôi gửi nhiều hơn 1 tin nhắn, tất cả các tin nhắn này sẽ được nhận mà không có ngoại lệ khi sự hiện diện gửi cho tôi.
Sự cố với MultiUserChat của tôi và sự cố giao hàng đang làm gì ở đây?
Cảm ơn sự quan tâm!
Thú vị, tất cả tôi có thể thêm là [tình trạng mã 101] (http://xmpp.org/registrar/mucstatus.html) có nghĩa là "thay đổi liên kết cho kết hợp MUC/người dùng" – Flow
Luồng, cảm ơn bạn đã nhận xét. Nhưng có mã trạng thái 110 không 101. Mã trạng thái 110 có nghĩa là sự hiện diện gửi và nó là đúng. – nizhney
IIRC, đây là một số hành vi kỳ lạ trong google talk, nơi họ phát lại sự hiện diện của bạn trong khoảng thời gian, gây ra sự kỳ quặc với căn phòng. – Zash