使用Smack库在端口上侦听XMPP连接

时间:2014-07-23 20:00:35

标签: java xmpp smack

我试图编写一个简单的服务器应用程序来侦听来自客户端的XMPP连接的端口,但该应用程序似乎没有打开该端口。

这是我到目前为止所尝试的内容:

Server.java

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Collection;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; 
import javax.security.auth.callback.*;    
import org.jivesoftware.smack.*;

public class Server implements Runnable{

    private static final int DEFAULT_PORT = 5222;
    private XMPPTCPConnection connection;
    private ExecutorService serv;
    public Server() {
        connection = new XMPPTCPConnection(new ConnectionConfiguration("localhost",DEFAULT_PORT));
        serv = Executors.newCachedThreadPool();
        XMPPTCPConnection.addConnectionCreationListener(new ConnectionCreationListener() {

            public void connectionCreated(XMPPConnection arg0) {

                serv.submit(new ClientWorker((XMPPTCPConnection) arg0));
            }

        });
        connection.addConnectionListener(new ServerListener());
    }
    public void run() {
        while(true)
        {
        }
    }

}

ServerListener 是一个实现 ConnectionListener 的类, ClientWorker 是一个实现 Runnable 的类。

我在Google上搜索过,但我找不到使用smack库的服务器应用程序的任何示例,仅用于客户端应用程序。你能告诉我我做错了什么吗?

1 个答案:

答案 0 :(得分:2)

Smack是一个XMPP 客户端库。它没有提供任何手段,也无意运行XMPP 服务器