分享

smack监听消息

 WindySky 2016-03-15

public static void listener(String userName, String passWord) {
  try {
   XMPPConnection connection = ToolsUtil.getUserConn(userName,passWord);
   ChatManager manager = connection.getChatManager();
   manager.addChatListener(new ChatManagerListener() {
    public void chatCreated(Chat chat, boolean arg1) {
     chat.addMessageListener(new MessageListener() {
      public void processMessage(Chat arg0, Message message) {
       System.out.println("收到消息" + message.getBody());
      }
     });
    }
   });
   while (true);
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 public static void listenerChat(String userName, String passWord) {
  try {
   XMPPConnection connection = ToolsUtil.getUserConn(userName,
     passWord);
   ChatManager cm = connection.getChatManager(); // 取得聊天
   Chat chat = cm.createChat("ctest1@windows-4b7lu7t", null); // 得到与另一个账号的连接,这里是一对一,@后面是你安装openfire时注册的域
   
   cm.addChatListener(new ChatManagerListener() {
    @Override
    public void chatCreated(Chat chat, boolean create) {
     chat.addMessageListener(new MessageListener() {
      @Override
      public void processMessage(Chat chat, Message msg) {
       System.out.println(chat.getParticipant() + ":"
         + msg.getBody());
      }
     });
    }
   });
   chat.sendMessage("aaaaa"); // 发送消息
   // while(true); //死循环,维持该连接不中断
   // connection.disconnect(); //断开连接
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
 public static void main(String[] args) {
  // 监听器
   listenerChat("ctest2", "123");
   listener("ctest1", "123");
 }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多