openfire

package com.fltim.web.test;

import java.util.Collection;
import java.util.Iterator;
import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.ChatManager;
import org.jivesoftware.smack.Connection;
import org.jivesoftware.smack.MessageListener;
import org.jivesoftware.smack.Roster;
import org.jivesoftware.smack.RosterListener;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Presence;
import com.fltim.web.smack.OpenFireUtil;
import com.fltim.web.smack.SmackConnection;


public class Test {
    public static void main(String[] args) throws XMPPException, InterruptedException {
        Connection connection  = SmackConnection.getConnection();
        connection.login("wangwei", "wangwei");
        
        ChatManager chatmanager = connection.getChatManager();
        Chat newChat = chatmanager.createChat("lf@lf", new MessageListener() { //TODO 接收lf发过来的信息
            public void processMessage(Chat chat, Message message) {
                System.out.println("Received message: " + message.getBody());
            }
        });
        
        newChat.sendMessage("hello");//TODO 向admin发送信息
        
        
        Roster roster=connection.getRoster();
        roster.createEntry("lf@lf", "lf", new String[]{"lf"});
        roster.addRosterListener(new RosterListener() {
            @Override  
            public void entriesAdded(Collection<String> collection) {//对方添加自己
                System.out.println("对方添加自己");
                String user = "";  
                Iterator<String> it = collection.iterator();  
                 if(it.hasNext()){  
                     user=it.next();  
                     System.out.println(user);
                 }
            }  
            @Override  
            public void entriesDeleted(Collection<String> collection) {//对方删除自己  
                System.out.println("对方删除自己");
                String user = "";  
                Iterator<String> it = collection.iterator();  
                 if(it.hasNext()){  
                     user=it.next();  
                     System.out.println(user);
                 }  
            }  
            @Override
             public void entriesUpdated(Collection<String> collection) {//对方好友列表改变
                System.out.println("好友列表变化");
                String user = "";  
                Iterator<String> it = collection.iterator();  
                 if(it.hasNext()){  
                     user=it.next();  
                     System.out.println(user);
                 }  
            }  
            @Override  
            public void presenceChanged(Presence presence) {
                System.out.println("$$$$$$$$$$$$$$$");
                if(presence.getFrom() != null && presence.getTo() != null) {
                    String oppositeName=presence.getFrom().split("@")[0];//对方的名称
                    String myName=presence.getTo().split("@")[0];//我的名称
                    System.out.println("我是"+myName+"监听到"+oppositeName+"状态改变了---在线状态status:"+presence.getType()+"在线状态model:"+presence.getMode());
                    String onlineType=presence.getType().toString();
                    String onlineModel=null;
                    if(presence.getMode()!=null) onlineModel=presence.getMode().toString();
                    int onlineStatus=OpenFireUtil.statusString2Int(onlineType, onlineModel);
                    System.out.println("******"+onlineStatus);
                }
            
            }  
        });
        
        
        
        
        
        Thread.sleep(500000000l);
    }
    
    
   
}

你可能感兴趣的:(openfire)