smack傳送和接收資訊
阿新 • • 發佈:2018-12-26
/** *傳送訊息 *@param con 使用者連線物件 *@param user 使用者JID *@param msg 傳送內容 */ @Override public synchronized void sendMessages(XMPPConnection con,String user, String msg) { if (null != user && !"@".equals(user)) { user = user + "@" +con.getServiceName(); } Chat chat=con.getChatManager().createChat(user, null); try { chat.sendMessage(msg); } catch (XMPPException e) { e.printStackTrace(); } }
/** * 接收訊息 * @param con 使用者連線物件 */ @Override public void recieveMessage(final XMPPConnection con) { final Map<String, String> params = new HashMap<String, String>();; //final StringBuilder sb=new StringBuilder(); con.getChatManager().addChatListener(new ChatManagerListener() { @Override public void chatCreated(Chat chat, boolean arg1) { chat.addMessageListener(new MessageListener() { @Override public void processMessage(Chat arg0, Message message) { System.out.println(message.getFrom()+"-->"+message.getTo()+"\n"+message.getBody()); } }); } }); //return sb.toString(); }
private static void addListener(XMPPConnection con) { // 包的過濾器 PacketFilter filterMessage = new PacketTypeFilter(Message.class); // 建立包的監聽器 PacketListener myListener = new PacketListener() { public void processPacket(Packet packet) { // 以XML格式輸出接收到的訊息 System.out.println("Body: " + ((Message) packet).getBody()); } }; // 給連線註冊一個包的監聽器 con.addPacketListener(myListener, filterMessage); }