`
zhuyx808
  • 浏览: 120309 次
  • 性别: Icon_minigender_1
  • 来自: 快来看~天上米有灰机
社区版块
存档分类
最新评论

OpenFire客户端编程示例

    博客分类:
  • xmpp
阅读更多
import java.util.Collection;
 
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Presence;
 
public class SimpleClient {
 
    /** Server name */
    public static final String SERVER_NAME = "localhost";
    /** Server port */
    public static final int SERVER_PORT = 5222; // as you can see in Admin
                                                // Console properties
 
    /** Client name - for login */
    private final String clientName;
    /** Client password - for login*/
    private final String clientPassword;
    /** Client color - for writing in color */
    private final String clientColor;
    /** Chat friend */
    private final String friendName;
 
    /**
     * Constrcuts a new SimpleClient
     * @param clientName0 -
     * @param clientPassword0 -
     * @param clientColor0 -
     * @param friendName0 -
     */
    public SimpleClient(String clientName0, String clientPassword0, String clientColor0, String friendName0) {
        super();
        this.clientName = clientName0;
        this.clientPassword = clientPassword0;
        this.clientColor = clientColor0;
        this.friendName = friendName0;
    }
 
    /**
     * Main process.
     */
    public void run() {
        try {
            this.runImpl();
        } catch (XMPPException e) {
            System.err.println("Exception: " + e);
        }
 
    }
 
    private void runImpl() throws XMPPException {
            XMPPConnection.DEBUG_ENABLED = true;
 
            /*
             * Configuration
             */
            final ConnectionConfiguration config = new ConnectionConfiguration(
                    SimpleClient.SERVER_NAME, SimpleClient.SERVER_PORT);
            config
                    .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
            config.setCompressionEnabled(false);
 
 
            /*
             * Open Connection
             */
            final XMPPConnection connection = new XMPPConnection(config);
            connection.connect();
            connection.login(this.clientName, this.clientPassword);
 
            /*
             * Chat
             */
            final MessageListener messageListner = new SimpleMessageListner();
            final Chat chat = connection.getChatManager().createChat(this.friendName, messageListner);
            final java.util.Date date = new java.util.Date(System.currentTimeMillis());
            final String msgSent = " [sent by " + this.clientName + ", at " + date.toString() + "]";
            final Message newMessage = new Message();
            newMessage.setBody("Howdy (colored)!" + msgSent);
            newMessage.setProperty("favoriteColor", this.clientColor);
            chat.sendMessage(newMessage);
            chat.sendMessage("Howdy!" + msgSent);
 
            /*
             * Roster
             */
            final Roster roster = connection.getRoster();
            // this is already the default Mode but added just for the example
            Roster
                    .setDefaultSubscriptionMode(Roster.SubscriptionMode.accept_all);
            roster.createEntry(this.friendName, "", null);
 
            this.presenceStatus(roster, "unknown@someone");
            this.presenceStatus(roster, this.friendName);
 
            final Collection<RosterEntry> entries = roster.getEntries();
            for (RosterEntry entry : entries) {
                System.out.println("RosterEntry " + entry);
            }
 
            final RosterListener rosterListener = new SimpleRosterListner();
            roster.addRosterListener(rosterListener);
 
            /*
             * End connection
             */
            connection.disconnect();
    }
 
    private void presenceStatus(final Roster roster, String user) {
        final Presence presence = roster.getPresence(user);
        final String response = presence == null ? "Not around" : presence.getStatus();
        System.out.println("Presence of '" + user + "': " + response);
    }
 
    /**
     *
     * @author some
     *
     */
    private class SimpleMessageListner implements MessageListener {
            public void processMessage(Chat chat, Message message) {
                System.out.println("Received message: "
                        + message.getBody());
            }
    }
 
    /**
     *
     * @author some
     *
     */
    private class SimpleRosterListner implements RosterListener {
        // Ignored events
        public void entriesAdded(Collection<String> addresses) {
        }
 
        public void entriesDeleted(Collection<String> addresses) {
        }
 
        public void entriesUpdated(Collection<String> addresses) {
        }
 
        public void presenceChanged(Presence presence) {
            System.out.println("Presence changed: "
                    + presence.getFrom() + " " + presence);
        }
 
    }
 
}
分享到:
评论
2 楼 zhuyx808 2011-08-07  
yangting_lisa 写道
这个程序我测试出来有问题,希望你可以帮组我

有啥问题可以直接说,我们一起研究研究
1 楼 yangting_lisa 2011-07-28  
这个程序我测试出来有问题,希望你可以帮组我

相关推荐

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java开源包1

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包11

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包2

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包3

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包6

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包5

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包10

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包8

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包7

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包9

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包101

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    Java资源包01

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

Global site tag (gtag.js) - Google Analytics