Smack Roster获取不到名册
2016-11-25 17:23
405 查看
最近搞OpenFire,一直在摸索一个XMPP协议的java lib: smack。
今天遇到一个很蛋疼的问题,记录一下。
Roster用来获取名册的类,但是按照文档里面那么写,获取到的Roster永远为空。
这是我的代码,entries.forEach(System.out::println);不会有任何的输出。这让我郁闷了一天,调试着玩的时候,偶然输出了一次名单,多次试验发现了一个奇怪的事情····
connection.login()之后,sleep一下,就可以获取到名册了。
这是输出:
今天遇到一个很蛋疼的问题,记录一下。
Roster用来获取名册的类,但是按照文档里面那么写,获取到的Roster永远为空。
/** * Created by Mario on 2016/11/25 0025. * Roster demo */ public class SmackRosterDemo { public static void main(String[] args) throws IOException, XMPPException, SmackException, InterruptedException { SmackConfiguration.DEBUG = true; XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder(); configBuilder.setServiceName("mario"); configBuilder.setUsernameAndPassword("mario", "123.com"); configBuilder.setResource("Spark"); configBuilder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled); XMPPTCPConnection connection = new XMPPTCPConnection(configBuilder.build()); connection.connect(); connection.login(); System.out.println(connection.isAuthenticated()); Roster roster = Roster.getInstanceFor(connection); Collection<RosterEntry> entries = roster.getEntries(); entries.forEach(System.out::println); Thread.sleep(1000000); connection.disconnect(); } }
这是我的代码,entries.forEach(System.out::println);不会有任何的输出。这让我郁闷了一天,调试着玩的时候,偶然输出了一次名单,多次试验发现了一个奇怪的事情····
....... connection.login(); System.out.println(connection.isAuthenticated()); Thread.sleep(100);//看这里!!! Roster roster = Roster.getInstanceFor(connection); Collection<RosterEntry> entries = roster.getEntries(); entries.forEach(System.out::println); .......
connection.login()之后,sleep一下,就可以获取到名册了。
这是输出:
true luigi: luigi@mario [Friends]
坑真多啊,有哪个大神知道原因,求告诉~
相关文章推荐
- UI中关于NSBundle mainBundle获取不到数据解决方案
- Jsp页面获取不到Servlet中session保存的值
- 获取文件创建时间时获取不到的解决方法
- ajax return返回值获取不到-【开发错误记录】。
- Spring MultipartResolver 或者 ServletFileUpload 冲突导致获取不到http数据/Multipart数据为空
- struts2 jsp ueditor 上传图片失败,获取不到值,解决方法
- vue.js 2.x 版本script里面的dom被过滤,从而获取不到dom字符串的解决方案
- 获取定位,苹果IOS10以上不支持h5的geolocation获取不到地理位置信息解决办法
- struct获取不到值的小错误
- 下载时获取不到文件大小
- 解决java网络下载获取不到文件长度
- Django的request.POST获取不到内容的原因
- Qt 打印失败变成生成pdf QPrinterInfo::availablePrinters()获取不到打印机信息
- easyui input设置为disabled提交后获取不到属性值
- php session获取不到的解决方法
- nginx做静态服务器tomcat中获取不到请求用户的真实ip
- linux下tomcat发布网站验证码获取不到
- 使用Druid连接池,mysql,做定时批量操作时,获取不到连接
- springmvc 获取不到Response问题
- PHP-PHPStorm调试时获取不到$_POST的值