无法使用asmack获得已加入的聊天室

法拉克·阿萨德(Falak Asad)

我的问题是我无法接收加入的聊天室。我正在使用openfire服务器3.8.2和asmack库asmack-android-16.jar。调用getJoinedRooms函数时收到未找到项错误。虽然我可以从管理控制台中看到用户已加入会议室。是服务器问题还是客户端问题,还是asmack出现问题?请告诉我是否有人可以使用openfire和asmack for android加入聊天室。

这是我所谓的函​​数:

Iterator RoomsIterator=MultiUserChat.getJoinedRooms(MyService.getConnection(),"[email protected]");

我也尝试过这样做,但是它没有提供响应服务器:Iterator RoomsIterator = MultiUserChat.getJoinedRooms(MyService.getConnection(),“ [email protected]/Smack”);

请帮助我解决我的问题,在此先感谢。

法拉克·阿萨德(Falak Asad)

我通过在呼叫获取加入房间功能后添加一个数据包侦听器解决了我的问题。当我得到一个空列表时,但是当我调试时,我检查了房间是否在服务器发送的结果xml stanze中返回了,所以我运行了asmack的getjoinedroom函数,然后我手动添加ha数据包侦听器,如下所示:

public void AddPacketListener(){
PacketFilter filter = new IQTypeFilter(IQ.Type.RESULT);
MyService.getConnection().addPacketListener(new PacketListener() 
{   
public void processPacket(Packet paramPacket) {

if(paramPacket.getFrom().equals(MyService.getConnection().getUser())){
        String xml=paramPacket.toXML();
        String from[];

        System.out.println(xml);
        from=paramPacket.getFrom().split("/");
            Pattern pattern = Pattern.compile("<item jid=\"(.*?)/>");
            Matcher matcher = pattern.matcher(xml);
            String parts[];

            Roomlist.clear();
            while (matcher.find()) {    

                parts=matcher.group(1).split("@");
                Roomlist.add(parts[0]);

            }      
            return;         
            }

}
},filter);

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Node JS中使用ws(Websocket)包创建/加入聊天室

订阅聊天室

带套接字的python聊天室无法正常工作

无法在android中创建聊天室,并且未从服务器(tigase服务器)获得响应

聊天室成员列表

NodeJS使用setInterval作为聊天室计时器

如何使用play framework websocket创建新的聊天室?

linphone在聊天室中使用SIP消息发送消息

使用API打开聊天室-Scringo Android

如何使用sockjs建立私人聊天室?

可扩展的聊天室使用(playframework akka和websocket)

使用 Firebase 将用户转发到特定聊天室

发送/接收Python聊天室不起作用(已更新)

Lync UCWA是否支持聊天室?

聊天室按地区分组

套接字聊天室-python 3.7

如何使用 Firebase 云数据库支持聊天室中的新消息?

使用Javascript,AJAX,PHP,MySql建立公共聊天室的问题

使用 ejabberd 将参与者添加到聊天室

如何使用nodejs和socket.io在聊天室中验证密码功能

使用Firebase具有半径的公共聊天室(要求提供建议)

如何在AppleScript中使用javascript返回聊天室中的用户列表

使用基于Twisted的套接字限制聊天室中的用户数量

使用 SignalR (ASP.NET Core) 的多个单聊天室

使用帶有 select() 的套接字編程的聊天室 - winsock - C

会议室数据库加载聊天室时获取最后的聊天室消息

无法在聊天室的左侧和右侧显示消息列表,始终在左侧(接收方)显示所有消息

如何通过Rest API在ejabberd中创建聊天室?

如何配置需要身份验证的聊天室