尝试通过Smack连接XMPP服务器并获取错误

时间:2016-09-24 07:15:48

标签: xmpp smack

我需要使用Java API Smack连接XMPP服务器,并进一步发送消息/接收消息。

我尝试使用Smack API(4.1.8),我收到错误(在下面找到错误)

注意:主机和端口都已打开

Code:`public class Sender {
public static void main(String a[]) throws NoResponseException,XMPPException,
InterruptedException, SmackException, IOException
{
    // Create the configuration for this new connection
   XMPPTCPConnectionConfiguration.Builder configBuilder =  XMPPTCPConnectionConfiguration.builder();
    configBuilder.setUsernameAndPassword("user", "******");
    configBuilder.setResource("work");
    configBuilder.setServiceName("HOstname");
    configBuilder.setSocketFactory(SSLSocketFactory.getDefault());
    configBuilder.setSecurityMode(SecurityMode.required);

    configBuilder.setCompressionEnabled(true);
    configBuilder.setHost("thingsociety.im");
    configBuilder.setDebuggerEnabled(true);
    configBuilder.setPort(5222);
    System.out.println("Connected1..............");

    XMPPTCPConnection connection = new XMPPTCPConnection(configBuilder.build());
    // Connect to the server
    try {
        System.out.println("Connected2..............");
        connection.setPacketReplyTimeout(100000);
        connection.connect();
        System.out.println("Connected3..............");
        // Log into the server
        connection.isConnected();
        connection.login();
        System.out.println("Connected4..............");
    }

    catch (XMPPException | SmackException | IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
         System.out.println(e.getMessage());
         }
    }
}
  

错误:回复超时内未收到任何响应。超时为100000毫秒(约100秒)。使用过滤器:未使用过滤器或过滤器为“无效”。   org.jivesoftware.smack.SmackException $ NoResponseException:在回复超时内没有收到响应。超时为100000毫秒(约100秒)。使用过滤器:未使用过滤器或过滤器为' null'

1 个答案:

答案 0 :(得分:0)

所以基本上某些东西(本地防火墙或你的网关)阻止了通信或configBuilder.setServiceName("HOstname");服务名称(又名XMPP域)是错误的,可能是错误的 - 特别是资本O看起来像拼错我。

我刚刚探测了thingociety.im:5222并且它是开放的,所以很可能是防火墙问题。

另一个可能是unhandeld,服务器端的低级别错误。