2017-06-15 22 views
0

私はTooTallNateからjava_websocketライブラリを使用して私のアンドロイドでwebsocketclientを試しています。すべてがwsで正常に動作します。 wssの場合、私のローカル開発サーバーには、クライアントでバイパスしようとしている自己署名入りの証明書がinstructions from hereであります。しかし、java websocketはsetwebsocketfactoryを解決できません

WebSocketClient.setWebSocketFactory(new DefaultSSLWebSocketClientFactory(sc)); 

いずれかsetWebSocketFactoryまたはDefaultSSLWebSocketClientFactory doesntのを決意。 WSSでのSSLサポートのコンパイルヘッダに何か不足していますか?これは私の依存

compile 'org.java-websocket:Java-WebSocket:1.3.4' 

と、このヘッダはいずれかの解決doesntの

import org.java_websocket.client.DefaultSSLWebSocketClientFactory; 

あなたは私が私が上で行方不明です何を知らせることができますです。ありがとう!

答えて

0

Nevermind。それは働いた。 APIが現在異なるように見えます。

https://github.com/TooTallNate/Java-WebSocket/blob/master/src/main/example/SSLClientExample.javaのこのスニペットを使用して、mWebSocketClientのタイプがWebSocketClientのオブジェクトである自己署名証明書を受け入れます。

TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { 
     public X509Certificate[] getAcceptedIssuers() { 
      X509Certificate[] myTrustedAnchors = new X509Certificate[0]; 
      return myTrustedAnchors; 
     } 

     @Override 
     public void checkClientTrusted(X509Certificate[] certs, 
             String authType) {} 

     @Override 
     public void checkServerTrusted(X509Certificate[] certs, 
             String authType) {} 
    } }; 
    try { 
     SSLContext sslContext = SSLContext.getInstance("TLS"); 
     sslContext.init(null, trustAllCerts, new SecureRandom()); 
     SSLSocketFactory factory = sslContext.getSocketFactory(); 
     mWebSocketClient.setSocket(factory.createSocket()); 
     mWebSocketClient.connectBlocking(); 
    } 
    catch (Exception e){ 
     e.printStackTrace(); 
    } 
関連する問題