在高速公路网络插座中使用wss时我无法通信,为什么



我在安卓上有一个带有高速公路的客户端应用程序。使用ws时可以很好地通信,但是当我使用wss时存在一些问题,我使用的证书是自签名证书,所以我在WebSocketConnection类中进行了一些更改.java正如作者所说。

我使用这个项目 https://github.com/palmerc/SecureWebSockets。


错误如下:websockets internal error(java.lang.NullPointerException)


我在WebSocketConnection中添加的内容.java如下:

 if (mWebSocketURI.getScheme().equalsIgnoreCase(WSS_URI_SCHEME)) {
    try {
            SSLContext sslContext=SSLContext.getInstance("TLS");
            KeyManagerFactory.getInstance("X509");
            TrustManagerFactory trustManagerFactory=TrustManagerFactory.getInstance("X509");
            KeyStore trustkeyStore=KeyStore.getInstance("BKS");
            trustkeyStore.load(MainActivity.activity.getResources().getAssets().open(KEYSTOREPATH_TRUST),
                                                          KEYSTOREPASSWORD.toCharArray());
            sslContext.init(null,trustManagerFactory.getTrustManagers(), null);
            factory=sslContext.getSocketFactory();
        } catch (KeyManagementException e) {
            // TODO Auto-generated catch block
                    e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (KeyStoreException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (CertificateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

我遇到了同样的问题,所以我找到了一个新的很棒的库:

dependency 'org.java-websocket:Java-WebSocket:1.3.0'

在这里查看我的答案,以找到有关如何使用此库的更多解释。此库支持 WS、WSS、HEADERS。

最新更新