java - https ://websocket not connect android

标签 java android websocket

我有连接套接字 http://(with port) url 是完整的并且可以工作但是我有连接 https://(without port) 在 Java 中不工作-WebSocket。

我使用 gradle 依赖 'org.java-websocket:Java-WebSocket:1.3.0'

WebSocketClient   mWebSocketClient = new WebSocketClient(uri) {
    @Override
    public void onOpen(ServerHandshake serverHandshake) {
        Log.e(TAG, "Websocket: " + "Opened");
        mWebSocketClient.send("Hello from " + Build.MANUFACTURER + " " + Build.MODEL);
    }

    @Override
    public void connect() {
        super.connect();
        //Log.e(TAG, "Websocket: " + "connect");
        SharedPreference.storeValue(mContext, SharedPreference.WEB_SOCKET_STATUS, SharedPreference.WEB_SOCKET_CONNECT);
    }
}

最佳答案

我找到了解决方案!)如果你想使用 wss:// 你应该设置 setWebSocketFactory.. 就像这样:

public void connect() {

    final String url = "wss://echo.websocket.org";
    URI uri=null;
    try{
        uri = new URI(url);
    }
    catch (URISyntaxException e) 
    {
        Log.e(TAG, e.getMessage());
        return;
    }
    mWebSocketClient = new WebSocketClient(uri) {
        @Override
        public void onOpen(ServerHandshake handshakedata) {
            Log.e(TAG,"Connected!");
        }

        @Override
        public void onMessage(String message) {
            Log.e(TAG,"Message: "+message);

        }

        @Override
        public void onClose(int code, String reason, boolean remote) {
            Log.e(TAG,"Disconnected!");

        }

        @Override
        public void onError(Exception ex) {
            Log.e(TAG,"Error: "+ex.getMessage());

        }
    };

    if (url.indexOf("wss") == 0) {
        try {
            SSLContext sslContext = SSLContext.getDefault();
            mWebSocketClient.setWebSocketFactory(new DefaultSSLWebSocketClientFactory(sslContext));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    mWebSocketClient.connect();
}

关于java - https ://websocket not connect android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39718846/

相关文章:

javascript - 如何将我网页的一部分 "stream"到另一个窗口?

java - 将选定的对象从 JSP 发送到 Servlet

java - 使用ajax请求发送时json值返回null

android - 如何继续使用 Android 6.0 (API 23) 中的浏览器书签更改

Android - 任何类似于 iPhone SDK 委托(delegate)回调的东西?

android - 通过内置下载服务下载文件

javascript - 将授权凭证发送到 Django-channels WebSocket(不将 token 设置为 cookie)

java - 在数据库中插入 clob 数据或所有类型的文件存储

java - Jersey:具有 1 个元素的 Json 数组被序列化为对象

javascript - 套接字 io Websocket 断开 Node js