教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

xmpp-多人聊天实例(3)

来源:网络收集 时间:2026-04-03
导读: 380. pm.addIQProvider(\, \, new MUCAdmin Provider()); 381. pm.addIQProvider(\, \, new MUCOwner Provider()); 382. } 383. 384. private static void initFeatures(XMPPConnection xmppConnection) { 385. Ser

380. pm.addIQProvider(\, \, new MUCAdmin

Provider());

381. pm.addIQProvider(\, \, new MUCOwner

Provider()); 382. } 383.

384. private static void initFeatures(XMPPConnection xmppConnection) { 385. ServiceDiscoveryManager.setIdentityName(\); 386. ServiceDiscoveryManager.setIdentityType(\);

387. ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(xmppConne

ction);

388. if(sdm == null) {

389. sdm = new ServiceDiscoveryManager(xmppConnection); 390. }

391. sdm.addFeature(\); 392. sdm.addFeature(\); 393. sdm.addFeature(\); 394. sdm.addFeature(\); 395. sdm.addFeature(\);

396. sdm.addFeature(\); 397. sdm.addFeature(\); 398. sdm.addFeature(\); 399. sdm.addFeature(\); 400. sdm.addFeature(\);

401. sdm.addFeature(\); 402. sdm.addFeature(\);

403. sdm.addFeature(\); 404. sdm.addFeature(\);

405. sdm.addFeature(\); 406. sdm.addFeature(\); 407. } 408. 409. }

上面有两张Spark客户端的聊天室列表占有者一列不同的原因:当使用以下代码获取时不能获取occupantsCount和subject的值:

view plain

1. System.out.println(roomInfo.getOccupantsCount() + \ + roomInfo.getSubject(

));

这是由于Openfire端有个bug(暂且这样说吧,我不知为什么Openfire这样做).首先修改Smack的一个bug,修改RoomInfo类的RoomInfo(DiscoverInfo info) 方法:

view plain

1. Iterator values = form.getField(\).getValues(); 2. if (values.hasNext()) {

3. this.subject = values.next(); 4. } 5. else {

6. this.subject = \;

7. }

改为:

view plain

1. final FormField subjField = form.getField(\); 2. this.subject = subjField == null ? \ : subjField.getValues().next();

修改Openfire的源码,org/jivesoftware/openfire/muc/spi/MultiUserChatServiceImpl类的public DataForm getExtendedInfo(String name, String node, JID senderJID) 方法:

view plain

1. /*final FormField fieldOcc = dataForm.addField(); */ 2. fieldSubj.setVariable(\);

3. fieldSubj.setLabel(LocaleUtils.getLocalizedString(\

nts\));

4. fieldSubj.addValue(Integer.toString(room.getOccupantsCount())); 5.

改为:

view plain

1. final FormField fieldOccu= dataForm.addField(); 2. fieldOccu.setVariable(\);

3. fieldOccu.setLabel(LocaleUtils.getLocalizedString(\)); 4. fieldOccu.addValue(Integer.toString(room.getOccupantsCount()));

…… 此处隐藏:69字,全部文档内容请下载后查看。喜欢就下载吧 ……
xmpp-多人聊天实例(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/434721.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)