我是堆栈上的新用户,但我在aSmack库3.2.1 for android中遇到MultiUserChat问题.我正在使用“gtalk.google.com”服务器.这是一个简单的例子,我只是房间里的一个:
String room="myConference@conference.jabber.org";
MultiUserChat muc = new MultiUserChat(connection,room);
muc.join(userNameInRoom);
muc.addMessageListener(new PacketListener()
{
@Override
public void processPacket(Packet packet)
{
...
}
});
后:
muc.sendMessage("Text message");
在日志中:
DEBUG/SMACK(281): 06:46:29 PM SENT (1140866576):
结果:“短信”,它是正确的,但随后:
我再次收到了“短信”的存在:
DEBUG/SMACK(281): 06:54:12 PM RCV (1140866576):
每当服务器向我发送状态时,我都会一次又一次地收到这个消息.间隔约5分钟无限延续.是的,在30分钟内我收到了~6条消息“短信”.如果我发送超过1条消息,所有这些消息都会在发送给我时无异常收到.
我的MultiUserChat有什么问题,延迟交付在这里做了什么?
谢谢你的关注!
最佳答案
在“@ conference.jabber.org”的情况下,我没有找到解决方案,因为GTalk服务器和MultiUserChat的正确版本以及“@ groupchat.google.com”,我决定了这个问题.
我改变了我的代码:
room=roomName+"@conference.jabber.org";
MultiUserChat muc = new MultiUserChat(connection,room);
muc.create(userName);
muc.sendConfigurationForm(new Form(Form.TYPE_SUBMIT));
至:
room="private-chat-" + UUID.randomUUID().toString() + "@groupchat.google.com";
MultiUserChat muc = new MultiUserChat(connection,room);
muc.join(userName);
muc.sendConfigurationForm(new Form(Form.TYPE_SUBMIT));
我试过了,但是我遇到了新的问题 – 当用户收到邀请消息并接受它时,两个客户端都崩溃了XmlPullException“END_TAG expected”和类似“< / stream:stream>”的东西在logcat的最后位置.
我开始谷歌这个问题并找到原因.我使用asem来自beem客户端(顺便说一句,之前我使用asmack-7来自asmack开发人员)以及我怎么知道它是基于smack 3.1 …我发现smack 3.2.0决定了这个问题.我下载了7000的asmack,我很高兴.
总之,我想说“谢谢!!!”流向正确版本的aSmack,它比其他版本更好.