最近用gloox写im去连openfire,始终无法连上去。先是TLS handshake succeeded这里死等,
log: level: 0, area: 8192, TLS handshake succeeded
后面又出现
log: level: 1, area: 4, The server offers compression, but negotiating Compressi
on at this stage is not recommended. See XEP-0170 for details. We'll continue an
yway.
改了改代码又出现验证失败,失败值为ConnNotConnected。
而我用spark登陆又没有问题,而前几天去连另外一台机器却没有问题,为什么连自己的机器就有问题了?
最终总算找到了这个问题的原因:安装openfire的时候会让你输域名,我就让它默认了(一般是你的机器名)。后面我用gloox连得时候是用127.0.0.1连的(用本机ip连也有这个问题),换成本机的机器名就可以了。或者在安装openfire的时候将域名改为ip。
例如原来为
JID jid( "[email protected]/gloox" );
j = new Client( jid, "bbb" );
改为
JID jid( "bbb@域名(一般为机器名)/gloox" );
j = new Client( jid, "bbb" );