小编use*_*465的帖子

ejabberd和smack握手失败了

我在我的云服务器上运行ejabberd,我认为它运行良好,因为我可以使用pidgin从我的PC连接到它.(ejabberdctl connected-users-number在我连接时回答1,在我离线时回答0.)

现在我尝试使用smack包从我的android应用程序连接到if,并且我得到IOException:

javax.net.ssl.SSLHandshakeException: Handshake failed

Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xb897c858: Failure in SSL library, usually a protocol error
error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol (external/openssl/ssl/s23_clnt.c:795 0xacf6bf89:0x00000000)
W/System.err? at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
W/System.err? at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:318)
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序代码:

XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration.builder();
config.setSecurityMode(ConnectionConfiguration.SecurityMode.required);
config.setConnectTimeout(30000);
config.setUsernameAndPassword(username + "@" + service, password);
config.setServiceName(service);
config.setHost(host);
config.setCompressionEnabled(true);
config.setPort(port);
config.setDebuggerEnabled(true);
config.setSocketFactory(SSLSocketFactory.getDefault());

SmackConfiguration.DEBUG = true;
try {
    TLSUtils.acceptAllCertificates(config);
    XMPPTCPConnection connection = new XMPPTCPConnection(config.build());
    connection.connect();
    connection.login();

} catch (SmackException ex) {
    ex.printStackTrace();
    chatClient.setConnection(null);
} catch(IOException ex){
    ex.printStackTrace();
    chatClient.setConnection(null);                 
} catch ( …
Run Code Online (Sandbox Code Playgroud)

java ssl android ejabberd smack

5
推荐指数
1
解决办法
1510
查看次数

标签 统计

android ×1

ejabberd ×1

java ×1

smack ×1

ssl ×1