smack api 使用

  1. ===============================================================
  2. 主动发送信息给某个用户
  3. ------------------------------------
  4. XMPPConnection.DEBUG_ENABLED=true ;
  5. //设置服务器地址
  6. XMPPConnectionconn=new XMPPConnection( "127.0.0.1" );
  7. conn.connect();
  8. //输入账号和密码登陆
  9. conn.login("[email protected]" , "123456" );
  10. //创建一个和test1的对话,并设置信息监听
  11. Chatmychat=conn.getManager().create("[email protected]" ,
  12. new MessageListener(){
  13. @Override
  14. public void processMessage(Chatchat,,Messagemessage){
  15. StringmessageBody=message.getBody();
  16. System.out.println("收到信息:" +messageBody);
  17. }
  18. });
  19. //发送给test1文本信息
  20. mychat.sendMessage("hello" );
  21. //退出登陆
  22. conn.disconnect();
  23. ===============================================================
  24. 设置自己的登陆状态
  25. ------------------------------------
  26. XMPPConnection.DEBUG_ENABLED=true ;
  27. //设置服务器地址
  28. XMPPConnectionconn=new XMPPConnection( "127.0.0.1" );
  29. conn.connect();
  30. //输入账号和密码登陆
  31. conn.login("[email protected]" , "123456" );
  32. //设置登陆后的个人状态信息
  33. Presencep=new Presence(Presence.Type.available);
  34. p.setStatus("发呆中。。。" );
  35. conn.sendPacket(p);
  36. //退出登陆
  37. conn.disconnect();
  38. ==========================================================================
  39. 被动接收用户发来的信息
  40. ------------------------------------
  41. XMPPConnection.DEBUG_ENABLED=true ;
  42. //设置服务器地址
  43. XMPPConnectionconn=new XMPPConnection( "127.0.0.1" );
  44. conn.connect();
  45. //输入账号和密码登陆
  46. conn.login("[email protected]" , "123456" );
  47. //设置信息的监听
  48. conn.getChatManager().addChatListener(new ChatManagerListener(){
  49. @Override
  50. public void chatCreated(Chatchat, boolean createdLocally){
  51. chat.addMessageListener(new MessageListener(){
  52. @Override
  53. public void processMessage(Chatchat,Messagemessage){
  54. StringmessageBody=message.getBody();
  55. System.out.println("接收到信息:" +messageBody);
  56. }
  57. });
  58. }
  59. });
  60. //退出登陆
  61. conn.disconnect();
  62. ==========================================================================
  63. 获取我的好友列表
  64. ------------------------------------
  65. //设置服务器地址
  66. XMPPConnectionconn=new XMPPConnection( "127.0.0.1" );
  67. conn.connect();
  68. //输入账号和密码登陆
  69. conn.login("[email protected]" , "123456" );
  70. Collection<RosterEntry>rosters=conn.getRoster().getEntries();
  71. System.out.println("我的好友列表:=======================" );
  72. for (RosterEntryrosterEntry:rosters){
  73. System.out.print("name:" +rosterEntry.getName()+ ",jid:" +rosterEntry.getUser());
  74. System.out.println("" );
  75. }
  76. System.out.println("我的好友列表:=======================" );
  77. conn.disconnect();
  78. ==========================================================================
  79. 聊天窗口输入状态,使用XEP-0085 协议
  80. ------------------------------------
  81. //发送给test1初始文本信息,附带输入状态
  82. Messagemess=new Message();
  83. mess.addExtension(new ChatStateExtension(ChatState.active));
  84. mychat.sendMessage(mess);
  85. //发送给test1初始文本信息,附带正在输入的状态
  86. Messagemess=new Message();
  87. mess.addExtension(new ChatStateExtension(ChatState.composing));
  88. mychat.sendMessage(mess);
  89. //发送给test1初始文本信息,附带暂停输入的状态
  90. Messagemess=new Message();
  91. mess.addExtension(new ChatStateExtension(ChatState.paused));
  92. mychat.sendMessage(mess);
  93. //其他略。。。
  94. //接收的时候
  95. public void processMessage(Chatchat,Messagemessage){
  96. StringmessageBody=message.getBody();
  97. PacketExtensionpe;
  98. pe=message.getExtension("composing" , "http://jabber.org/protocol/chatstates" );
  99. if (pe!= null ){
  100. System.out.println("对方正在输入......" );
  101. }
  102. pe=message.getExtension("active" , "http://jabber.org/protocol/chatstates" );
  103. if (pe!= null ){
  104. System.out.println("接收到信息:" +messageBody);
  105. }
  106. pe=message.getExtension("paused" , "http://jabber.org/protocol/chatstates" );
  107. if (pe!= null ){
  108. System.out.println("对方已暂停输入" );
  109. }
  110. pe=message.getExtension("inactive" , "http://jabber.org/protocol/chatstates" );
  111. if (pe!= null ){
  112. System.out.println("对方聊天窗口失去焦点" );
  113. }
  114. pe=message.getExtension("gone" , "http://jabber.org/protocol/chatstates" );
  115. if (pe!= null ){
  116. System.out.println("对方聊天窗口被关闭" );
  117. }
  118. }
  119. ==========================================================================
  120. 接收邀请,加入多人聊天房间
  121. ------------------------------------
  122. MultiUserChat.addInvitationListener(conn,new InvitationListener(){
  123. @Override
  124. public void invitationReceived(XMPPConnectionconn,Stringroom,
  125. Stringinviter,Stringreason,Stringpassword,Messagemessage){
  126. MultiUserChatmultiUserChat=new MultiUserChat(conn,room);
  127. System.out.println("收到来自" +inviter+ "的聊天室邀请。邀请附带内容:" +reason);
  128. try {
  129. multiUserChat.join("test2" ,password);
  130. }catch (XMPPExceptione){
  131. System.out.println("加入聊天室失败" );
  132. e.printStackTrace();
  133. }
  134. System.out.println("成功加入聊天室" );
  135. multiUserChat.addMessageListener(new PacketListener(){
  136. @Override
  137. public void processPacket(Packetpacket){
  138. Messagemessage=(Message)packet;
  139. //接收来自聊天室的聊天信息
  140. System.out.println(message.getFrom()+":" +message.getBody());
  141. }
  142. });
  143. }
  144. //发送信息到聊天室
  145. multiUserChat.sendMessage("新手到来,大家关照!" );
  146. });
  147. ==========================================================================
  148. 登陆gtalk
  149. ------------------------------------
  150. XMPPConnectionconn=new XMPPConnection( new ConnectionConfiguration( "talk.google.com" , 5222 , "gmail.com" ));
  151. conn.connect();
  152. //输入gtalk的账号密码
  153. conn.login("88888888" , "8888888888" );
  154. Collection<RosterEntry>rosters=conn.getRoster().getEntries();
  155. //获取gtalk上的好友列表
  156. System.out.println("我的好友列表:=======================" );
  157. for (RosterEntryrosterEntry:rosters){
  158. System.out.print("name:" +rosterEntry.getName()+ ",jid:" +rosterEntry.getUser());
  159. System.out.println("" );
  160. }
  161. System.out.println("我的好友列表:=======================" );
  162. conn.disconnect();
  163. ==========================================================================
Java代码 复制代码 收藏代码
  1. ===============================================================
  2. 主动发送信息给某个用户
  3. ------------------------------------
  4. XMPPConnection.DEBUG_ENABLED=true;
  5. //设置服务器地址
  6. XMPPConnectionconn=newXMPPConnection("127.0.0.1");
  7. conn.connect();
  8. //输入账号和密码登陆
  9. conn.login("[email protected]","123456");
  10. //创建一个和test1的对话,并设置信息监听
  11. Chatmychat=conn.getManager().create("[email protected]",
  12. newMessageListener(){
  13. @Override
  14. publicvoidprocessMessage(Chatchat,,Messagemessage){
  15. StringmessageBody=message.getBody();
  16. System.out.println("收到信息:"+messageBody);
  17. }
  18. });
  19. //发送给test1文本信息
  20. mychat.sendMessage("hello");
  21. //退出登陆
  22. conn.disconnect();
  23. ===============================================================
  24. 设置自己的登陆状态
  25. ------------------------------------
  26. XMPPConnection.DEBUG_ENABLED=true;
  27. //设置服务器地址
  28. XMPPConnectionconn=newXMPPConnection("127.0.0.1");
  29. conn.connect();
  30. //输入账号和密码登陆
  31. conn.login("[email protected]","123456");
  32. //设置登陆后的个人状态信息
  33. Presencep=newPresence(Presence.Type.available);
  34. p.setStatus("发呆中。。。");
  35. conn.sendPacket(p);
  36. //退出登陆
  37. conn.disconnect();
  38. ==========================================================================
  39. 被动接收用户发来的信息
  40. ------------------------------------
  41. XMPPConnection.DEBUG_ENABLED=true;
  42. //设置服务器地址
  43. XMPPConnectionconn=newXMPPConnection("127.0.0.1");
  44. conn.connect();
  45. //输入账号和密码登陆
  46. conn.login("[email protected]","123456");
  47. //设置信息的监听
  48. conn.getChatManager().addChatListener(newChatManagerListener(){
  49. @Override
  50. publicvoidchatCreated(Chatchat,booleancreatedLocally){
  51. chat.addMessageListener(newMessageListener(){
  52. @Override
  53. publicvoidprocessMessage(Chatchat,Messagemessage){
  54. StringmessageBody=message.getBody();
  55. System.out.println("接收到信息:"+messageBody);
  56. }
  57. });
  58. }
  59. });
  60. //退出登陆
  61. conn.disconnect();
  62. ==========================================================================
  63. 获取我的好友列表
  64. ------------------------------------
  65. //设置服务器地址
  66. XMPPConnectionconn=newXMPPConnection("127.0.0.1");
  67. conn.connect();
  68. //输入账号和密码登陆
  69. conn.login("[email protected]","123456");
  70. Collection<RosterEntry>rosters=conn.getRoster().getEntries();
  71. System.out.println("我的好友列表:=======================");
  72. for(RosterEntryrosterEntry:rosters){
  73. System.out.print("name:"+rosterEntry.getName()+",jid:"+rosterEntry.getUser());
  74. System.out.println("");
  75. }
  76. System.out.println("我的好友列表:=======================");
  77. conn.disconnect();
  78. ==========================================================================
  79. 聊天窗口输入状态,使用XEP-0085协议
  80. ------------------------------------
  81. //发送给test1初始文本信息,附带输入状态
  82. Messagemess=newMessage();
  83. mess.addExtension(newChatStateExtension(ChatState.active));
  84. mychat.sendMessage(mess);
  85. //发送给test1初始文本信息,附带正在输入的状态
  86. Messagemess=newMessage();
  87. mess.addExtension(newChatStateExtension(ChatState.composing));
  88. mychat.sendMessage(mess);
  89. //发送给test1初始文本信息,附带暂停输入的状态
  90. Messagemess=newMessage();
  91. mess.addExtension(newChatStateExtension(ChatState.paused));
  92. mychat.sendMessage(mess);
  93. //其他略。。。
  94. //接收的时候
  95. publicvoidprocessMessage(Chatchat,Messagemessage){
  96. StringmessageBody=message.getBody();
  97. PacketExtensionpe;
  98. pe=message.getExtension("composing","http://jabber.org/protocol/chatstates");
  99. if(pe!=null){
  100. System.out.println("对方正在输入......");
  101. }
  102. pe=message.getExtension("active","http://jabber.org/protocol/chatstates");
  103. if(pe!=null){
  104. System.out.println("接收到信息:"+messageBody);
  105. }
  106. pe=message.getExtension("paused","http://jabber.org/protocol/chatstates");
  107. if(pe!=null){
  108. System.out.println("对方已暂停输入");
  109. }
  110. pe=message.getExtension("inactive","http://jabber.org/protocol/chatstates");
  111. if(pe!=null){
  112. System.out.println("对方聊天窗口失去焦点");
  113. }
  114. pe=message.getExtension("gone","http://jabber.org/protocol/chatstates");
  115. if(pe!=null){
  116. System.out.println("对方聊天窗口被关闭");
  117. }
  118. }
  119. ==========================================================================
  120. 接收邀请,加入多人聊天房间
  121. ------------------------------------
  122. MultiUserChat.addInvitationListener(conn,newInvitationListener(){
  123. @Override
  124. publicvoidinvitationReceived(XMPPConnectionconn,Stringroom,
  125. Stringinviter,Stringreason,Stringpassword,Messagemessage){
  126. MultiUserChatmultiUserChat=newMultiUserChat(conn,room);
  127. System.out.println("收到来自"+inviter+"的聊天室邀请。邀请附带内容:"+reason);
  128. try{
  129. multiUserChat.join("test2",password);
  130. }catch(XMPPExceptione){
  131. System.out.println("加入聊天室失败");
  132. e.printStackTrace();
  133. }
  134. System.out.println("成功加入聊天室");
  135. multiUserChat.addMessageListener(newPacketListener(){
  136. @Override
  137. publicvoidprocessPacket(Packetpacket){
  138. Messagemessage=(Message)packet;
  139. //接收来自聊天室的聊天信息
  140. System.out.println(message.getFrom()+":"+message.getBody());
  141. }
  142. });
  143. }
  144. //发送信息到聊天室
  145. multiUserChat.sendMessage("新手到来,大家关照!");
  146. });
  147. ==========================================================================
  148. 登陆gtalk
  149. ------------------------------------
  150. XMPPConnectionconn=newXMPPConnection(newConnectionConfiguration("talk.google.com",5222,"gmail.com"));
  151. conn.connect();
  152. //输入gtalk的账号密码
  153. conn.login("88888888","8888888888");
  154. Collection<RosterEntry>rosters=conn.getRoster().getEntries();
  155. //获取gtalk上的好友列表
  156. System.out.println("我的好友列表:=======================");
  157. for(RosterEntryrosterEntry:rosters){
  158. System.out.print("name:"+rosterEntry.getName()+",jid:"+rosterEntry.getUser());
  159. System.out.println("");
  160. }
  161. System.out.println("我的好友列表:=======================");
  162. conn.disconnect();
  163. ==========================================================================

你可能感兴趣的:(smack)