Android smack和openfire通信的小实例

 首先还是下载smack,我下载的是smack_3_2_0.tar。这个包里有四个jar文件。
  首先创建一个java工程。创建一个lib文件夹,把这四个jar包放到lib中,添加到编译路径中。
  目录接口如下:

       创建一个TestSmack.java类。具体代码如下:

java代码:

  1. package eoe.demo;
  2. import org.jivesoftware.smack.ConnectionConfiguration;
  3. import org.jivesoftware.smack.PacketListener;
  4. import org.jivesoftware.smack.XMPPConnection;
  5. import org.jivesoftware.smack.XMPPException;
  6. import org.jivesoftware.smack.filter.PacketFilter;
  7. import org.jivesoftware.smack.packet.IQ;
  8. import org.jivesoftware.smack.packet.Packet;
  9. public class TestSmack {
  10. public static void main(String[] args) throws XMPPException {
  11. ConnectionConfiguration config = new ConnectionConfiguration("127.0.0.1", 5222);
  12. XMPPConnection connection = new XMPPConnection(config);
  13. XMPPConnection.DEBUG_ENABLED = true;
  14. connection.connect();
  15. connection.login("admin", "admin");
  16. // ChatManager chatManager = connection.getChatManager();
  17. // chatManager.addChatListener(new ChatManagerListener(){
  18. // @Override
  19. // public void chatCreated(Chat chat, boolean arg1) {
  20. // chat.addMessageListener(new MessageListener(){
  21. // @Override
  22. // public void processMessage(Chat arg0, Message arg1) {
  23. // System.out.println(arg1.getBody());
  24. // }
  25. // });
  26. //
  27. // }
  28. // });
  29. connection.addPacketListener(new PacketListener(){
  30. @Override
  31. public void processPacket(Packet arg0) {
  32. System.out.println(arg0);
  33. }
  34. }, new PacketFilter(){
  35. @Override
  36. public boolean accept(Packet arg0) {
  37. return true;
  38. }
  39. });
  40. IQ iq = new IQ(){
  41. @Override
  42. public String getChildElementXML() {
  43. StringBuilder buf = new StringBuilder();
  44. buf.append("");
  45. return buf.toString();
  46. }
  47. };
  48. connection.sendPacket(iq);
  49. // Chat chat = chatManager.createChat("yangzc", new MessageListener(){
  50. // @Override
  51. // public void processMessage(Chat arg0, Message arg1) {
  52. // System.out.println(arg1.getBody());
  53. // }
  54. // });
  55. // chat.sendMessage("hello World!!!");
  56. // BufferedReader cmdIn = new BufferedReader(new InputStreamReader(System.in));
  57. // for(;;) {
  58. // try {
  59. // String cmd = cmdIn.readLine();
  60. // if("!q".equalsIgnoreCase(cmd)) {
  61. // break;
  62. // }
  63. // chat.sendMessage(cmd);
  64. // }catch(Exception ex) {
  65. // }
  66. // }
  67. connection.disconnect();
  68. System.exit(0);
  69. }
  70. }
复制代码


       总结:
  这里比较关键的一句话时是pdf:buf.append("");这句话指定了这个消息是发动到那个命名空间中。
  只有发送到openfire插件对应的命名空间中openfire插件才可以正确接收。
  至此openfire插件和smack的通信实现算是告一段落。剩下的工作就是xml了,不用说了吧,很简单的。

转载于:https://www.cnblogs.com/aspxnets/archive/2011/08/02/2124472.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值