我在 android 上有一个带有 autobahn 的客户端应用程序。使用ws可以很好的通信,但是我使用wss的时候出现了一些问题,我使用的证书是自签名证书,所以我按照作者的说法在类WebSocketConnection.java中做了一些修改。
我使用 https://github.com/palmerc/SecureWebSockets这个项目。
报错如下: websockets 内部错误(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'
检查我的答案 here查找有关如何使用此库的更多说明。此库支持 WS、WSS、HEADERS。
关于android - 我在高速公路 websocket 中使用 wss 时无法通信,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35885091/