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

xmpp-多人聊天实例

来源:网络收集 时间:2026-04-02
导读: 一直想写东西,但是上班不能在CSDN上写东西。下班回家又忙着学Iphone开发,唉,两个个字,忒忙。今天就写写Smack的聊天室功能吧。 先上代码: view plain 1. import java.io.BufferedReader; 2. import java.io.InputStreamReader; 3. import java.util.Arra

一直想写东西,但是上班不能在CSDN上写东西。下班回家又忙着学Iphone开发,唉,两个个字,忒忙。今天就写写Smack的聊天室功能吧。 先上代码:

view plain

1. import java.io.BufferedReader; 2. import java.io.InputStreamReader; 3. import java.util.ArrayList; 4. import java.util.Collection; 5. import java.util.Iterator; 6. import java.util.List; 7.

8. import org.jivesoftware.smack.Chat;

9. import org.jivesoftware.smack.ConnectionConfiguration; 10. import org.jivesoftware.smack.MessageListener; 11. import org.jivesoftware.smack.PacketListener; 12. import org.jivesoftware.smack.SmackConfiguration; 13. import org.jivesoftware.smack.XMPPConnection; 14. import org.jivesoftware.smack.XMPPException; 15. import org.jivesoftware.smack.packet.Message; 16. import org.jivesoftware.smack.packet.Packet;

17. import org.jivesoftware.smack.provider.ProviderManager; 18. import org.jivesoftware.smackx.Form; 19. import org.jivesoftware.smackx.FormField;

20. import org.jivesoftware.smackx.ServiceDiscoveryManager;

21. import org.jivesoftware.smackx.muc.DefaultParticipantStatusListener; 22. import org.jivesoftware.smackx.muc.DefaultUserStatusListener; 23. import org.jivesoftware.smackx.muc.DiscussionHistory; 24. import org.jivesoftware.smackx.muc.HostedRoom;

25. import org.jivesoftware.smackx.muc.InvitationListener;

26. import org.jivesoftware.smackx.muc.InvitationRejectionListener; 27. import org.jivesoftware.smackx.muc.MultiUserChat; 28. import org.jivesoftware.smackx.muc.RoomInfo;

29. import org.jivesoftware.smackx.muc.SubjectUpdatedListener; 30. import org.jivesoftware.smackx.packet.ChatStateExtension; 31. import org.jivesoftware.smackx.packet.DiscoverInfo; 32. import org.jivesoftware.smackx.packet.DiscoverItems; 33. import org.jivesoftware.smackx.packet.OfflineMessageInfo; 34. import org.jivesoftware.smackx.packet.OfflineMessageRequest; 35. import org.jivesoftware.smackx.provider.AdHocCommandDataProvider; 36. import org.jivesoftware.smackx.provider.BytestreamsProvider; 37. import org.jivesoftware.smackx.provider.DataFormProvider;

38. import org.jivesoftware.smackx.provider.DiscoverInfoProvider; 39. import org.jivesoftware.smackx.provider.DiscoverItemsProvider; 40. import org.jivesoftware.smackx.provider.IBBProviders; 41. import org.jivesoftware.smackx.provider.MUCAdminProvider; 42. import org.jivesoftware.smackx.provider.MUCOwnerProvider; 43. import org.jivesoftware.smackx.provider.MUCUserProvider;

44. import org.jivesoftware.smackx.provider.StreamInitiationProvider; 45. import org.jivesoftware.smackx.provider.VCardProvider;

46. import org.jivesoftware.smackx.provider.XHTMLExtensionProvider; 47.

48. public class TestSmack2 {

49. public static void main(String[] args) {XMPPConnection.DEBUG_ENABLED = true; 50. final ConnectionConfiguration connectionConfig = new ConnectionConfiguration(\

PC2010102716\, 5222, \);

51. connectionConfig.setSASLAuthenticationEnabled(false); 52. ProviderManager pm = ProviderManager.getInstance(); 53. configure(pm); 54. try {

55. XMPPConnection connection = new XMPPConnection(connectionConfig); 56. connection.connect();//连接 57. initFeatures(connection);

58. connection.login(\, \);//登陆 59. //聊天室

60. //MultiUserChat multiUserChat = new MultiUserChat(connection, new Invitati

onListener() {}); 61. //查找服务

62. System.out.println(connection.getServiceName());

63. List col = getConferenceServices(connection.getServiceName(), conn

ection);

64. for (Object aCol : col) {

65. String service = (String) aCol; 66. //查询服务器上的聊天室

67. Collection rooms = MultiUserChat.getHostedRooms(connection

, service);

68. for(HostedRoom room : rooms) { 69. //查看Room消息

70. System.out.println(room.getName() + \ +room.getJid()); 71. RoomInfo roomInfo = MultiUserChat.getRoomInfo(connection, room.get

Jid());

72. if(roomInfo != null) {

73. System.out.println(roomInfo.getOccupantsCount() + \ + room

Info.getSubject()); 74. } 75. }

76. } 77.

78. /*---创建默认配置的聊天室 --- 79. 先看看官方的文档:

80. Creates a new multi user chat with the specified connection and room name.

Note: no

81. * information is sent to or received from the server until you attem

pt to

82. * {@link #join(String) join} the chat room. On some server implementa

tions,

83. * the room will not be created until the first person joins it 84. * 最重要一句:直到用户调用join方法的时候聊天室才会被创建 85. */

86. MultiUserChat muc = new MultiUserChat(connection, \

10102716\);

87. muc.create(\);

88. muc.sendConfigurationForm(new Form(Form.TYPE_SUBMIT)); 89.

90. //----创建手动配置聊天室----

91. muc = new MultiUserChat(connection, \);

92.

93. //销毁聊天室

94. //muc.destroy(\ 95. muc.create(\); 96. //获取聊天室的配置表单

97. Fo …… 此处隐藏:5788字,全部文档内容请下载后查看。喜欢就下载吧 ……

xmpp-多人聊天实例.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)