niz*_*ney 5 android xmpp asmack
我是堆栈上的新用户,但我在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)
{
...
}
});
Run Code Online (Sandbox Code Playgroud)
后:
muc.sendMessage("Text message");
Run Code Online (Sandbox Code Playgroud)
在日志中:
DEBUG/SMACK(281): 06:46:29 PM SENT (1140866576): <message id="gsMe7-18"
to="myConference@conference.jabber.org" type="groupchat"><body>Text message
</body></message>
DEBUG/SMACK(281): 06:46:29 PM RCV (1140866576): <message
from="myConference@conference.jabber.org/userNameInRoom" to="userName"
type="groupchat"><body>Text message</body></message>
Run Code Online (Sandbox Code Playgroud)
结果:"短信",它是正确的,但随后:
我再次收到了"短信"的存在:
DEBUG/SMACK(281): 06:54:12 PM RCV (1140866576): <presence
from="myConference@conference.jabber.org/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="myConference@conference.jabber.org/userNameInRoom" to="userName"
type="groupchat"><body>Text message</body><delay stamp="2012-02-15T17:46:31Z"
from="myConference@conference.jabber.org" xmlns="urn:xmpp:delay"/><x
stamp="20120215T17:46:31" from="myConference@conference.jabber.org"
xmlns="jabber:x:delay"/></message>
Run Code Online (Sandbox Code Playgroud)
每当服务器向我发送状态时,我都会一次又一次地收到这个消息.间隔约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));
Run Code Online (Sandbox Code Playgroud)
到:
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));
Run Code Online (Sandbox Code Playgroud)
我尝试了它,但遇到了新问题 - 当用户收到邀请消息并接受它时,两个客户端都会崩溃,并出现XmlPullException“预期的 END_TAG”以及 logcat 中最后位置的“</stream:stream>”之类的内容。
我开始用谷歌搜索这个问题并找到原因。我使用了beem客户端的asmack(顺便说一句,在此之前我使用了asmack开发人员的asmack-7)以及我如何知道它是基于smack 3.1...我发现smack 3.2.0决定了这个问题。我下载了Flow 版本的 asmack,对此我很满意。
最后我想说“谢谢!!!” 到 Flow 获取正确版本的 aSmack,它比其他版本效果更好。
| 归档时间: |
|
| 查看次数: |
4032 次 |
| 最近记录: |