android - 我在高速公路 websocket 中使用 wss 时无法通信,为什么?

标签 android ssl websocket autobahn

我在 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/

相关文章:

android - com.android.support :support-v4 has different version for the compile

azure - 创建脚本以对域和网站证书进行监控

security - HTTPS/SSL 在什么时候加密 POST 数据

node.js - Socket.io 与 node.js 中的网络类

python - 如何使用 SSL 创建 python websocket 并在其中使用 cookie?

android - 保存到 sd 卡的图像不会出现在 Android 图库应用中

android - 在第一个 Activity 启动 Intent 后,第二个 Activity 显示空白屏幕

android - ClipData 上的标签在哪里可见?

.net - 防止错误无法在某些服务器上创建 SSL/TLS 安全通道

javascript - 传输信息仅供浏览器环境接收?