首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java websocket无法解析setwebsocketfactory

java websocket无法解析setwebsocketfactory
EN

Stack Overflow用户
提问于 2017-06-16 00:05:20
回答 1查看 1.7K关注 0票数 1

我正在使用TooTallNate的java_websocket库在我的安卓上试用websocketclient。在ws上一切工作正常。对于wss,我的本地开发服务器有一个自签名证书,我正尝试在使用instructions from here的客户机中绕过该证书。然而,

代码语言:javascript
复制
WebSocketClient.setWebSocketFactory(new DefaultSSLWebSocketClientFactory(sc)); 

既不解析setWebSocketFactory也不解析DefaultSSLWebSocketClientFactory。我是不是在WSS中的SSL支持的编译头中遗漏了什么?这是我的依赖项

代码语言:javascript
复制
compile 'org.java-websocket:Java-WebSocket:1.3.4'

并且这个标头也不能解析

代码语言:javascript
复制
import org.java_websocket.client.DefaultSSLWebSocketClientFactory;

你能让我知道我错过了什么吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-06-16 10:06:39

不要紧。让它起作用了。看起来API当前是不同的。

使用https://github.com/TooTallNate/Java-WebSocket/blob/master/src/main/example/SSLClientExample.java中的此代码片段接受自签名证书,其中mWebSocketClientWebSocketClient类型的对象。

代码语言:javascript
复制
    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();
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44572162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档