我正在使用aSmack 8-0.8.10库制作一个Android聊天应用程序。我试图实现MultiUserChat。
所以我到目前为止的设置是在localhost上运行的openfire服务器,以及用于在本地主机上进行测试的spark客户端。我从我的Android客户端来回传递给我的spark客户端以测试新功能。
我可以成功创建一个房间并加入它,但是当我将邀请发送给Spark客户端并且他们尝试加入时,它会显示"您尝试输入的房间不存在"房间也出现在行动 - >加入会议室。
注意:我已经用SmackAndroid.init初始化了aSmack静态类(这个) 并在服务onDestory方法中调用SmackAndroid.onDestroy
以下是我尝试使用的代码:
MultiUserChat muc = new MultiUserChat(connection, "myroom@conference.localhost");
try {
muc.create("thing1");
muc.sendConfigurationForm(new Form(Form.TYPE_SUBMIT));
muc.join("thing1");
//muc.getParticipants();
muc.invite("test1@localhost", "Join My Group");
Log.d("XMPP","People: "+ muc.getParticipants().toString());
//^^returns an empty list
muc.sendMessage("This is a test");
} catch (XMPPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
编辑:自用户请求以来的一些Stanzas。
EDIT2:解决
基本上我通过删除muc.join(" thing1")行解决了这个问题。似乎当用户创建一个房间时,他们会自动加入,而无需加入呼叫。