导航菜单

页面标题

页面副标题

万能钥匙 v1.1.23 - WebSocketClient.java 源代码

正在查看: 万能钥匙 v1.1.23 应用的 WebSocketClient.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.finogeeks.lib.applet.api.network.websocket;

import com.finogeeks.lib.applet.debugger.StethoWebSocketFactory;
import com.finogeeks.lib.applet.f.c.a0;
import com.finogeeks.lib.applet.f.c.c0;
import com.finogeeks.lib.applet.f.c.g0;
import com.finogeeks.lib.applet.f.c.h0;
import com.finogeeks.lib.applet.f.c.s;
import com.finogeeks.lib.applet.f.c.x;
import com.finogeeks.lib.applet.f.d.f;
import com.finogeeks.lib.applet.main.host.Host;
import com.finogeeks.lib.applet.modules.ext.r;
import com.finogeeks.lib.applet.modules.log.FLog;
import com.finogeeks.lib.applet.modules.log.FLogCommonTag;
import com.finogeeks.lib.applet.rest.FinAppletHostnameVerifier;
import com.finogeeks.lib.applet.utils.OkHttpUtil;
import hh0.l;
import java.net.ConnectException;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import javax.net.ssl.SSLException;
import kotlin.Metadata;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.n;
import kotlin.jvm.internal.p;
import kotlin.jvm.internal.y;
import lg0.h;
import lg0.i;
import org.json.JSONObject;
import tj0.t;
import tj0.u;

@Metadata(d1 = {"\u0000X\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\b\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010 \n\u0000\n\u0002\u0010\t\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\t\n\u0002\u0018\u0002\n\u0002\b\u0005\u0018\u00002\u00020\u0001:\u0002-.B\u001f\u0012\u0006\u0010\u0003\u001a\u00020\u0002\u0012\u0006\u0010\u0005\u001a\u00020\u0004\u0012\u0006\u0010\u0007\u001a\u00020\u0006¢\u0006\u0004\b\b\u0010\tJ\u001f\u0010\u000e\u001a\u00020\r2\u0006\u0010\u000b\u001a\u00020\n2\b\u0010\f\u001a\u0004\u0018\u00010\u0004¢\u0006\u0004\b\u000e\u0010\u000fJA\u0010\u0018\u001a\u0004\u0018\u00010\u00042\u0006\u0010\u0010\u001a\u00020\u00042\b\u0010\u0012\u001a\u0004\u0018\u00010\u00112\u000e\u0010\u0014\u001a\n\u0012\u0004\u0012\u00020\u0004\u0018\u00010\u00132\u0006\u0010\u0016\u001a\u00020\u00152\u0006\u0010\u0017\u001a\u00020\u0015¢\u0006\u0004\b\u0018\u0010\u0019J\u0015\u0010\u001c\u001a\u00020\r2\u0006\u0010\u001b\u001a\u00020\u001a¢\u0006\u0004\b\u001c\u0010\u001dJ\u0015\u0010\u001c\u001a\u00020\r2\u0006\u0010\u001b\u001a\u00020\u0004¢\u0006\u0004\b\u001c\u0010\u001eR\u0014\u0010\u0007\u001a\u00020\u00068\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0007\u0010\u001fR#\u0010&\u001a\n !*\u0004\u0018\u00010 0 8BX\u0082\u0084\u0002¢\u0006\f\n\u0004\b\"\u0010#\u001a\u0004\b$\u0010%R\u0017\u0010\u0005\u001a\u00020\u00048\u0006¢\u0006\f\n\u0004\b\u0005\u0010'\u001a\u0004\b(\u0010)R\u0018\u0010+\u001a\u0004\u0018\u00010*8\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\b+\u0010,¨\u0006/"}, d2 = {"Lcom/finogeeks/lib/applet/api/network/websocket/WebSocketClient;", "", "Lcom/finogeeks/lib/applet/main/host/Host;", "host", "", "socketId", "Lcom/finogeeks/lib/applet/api/network/websocket/WebSocketClient$Callback;", "callback", "<init>", "(Lcom/finogeeks/lib/applet/main/host/Host;Ljava/lang/String;Lcom/finogeeks/lib/applet/api/network/websocket/WebSocketClient$Callback;)V", "", "code", "reason", "", "close", "(ILjava/lang/String;)Z", "url", "Lorg/json/JSONObject;", "header", "", "protocols", "", "timeout", "pingInterval", "newWebSocket", "(Ljava/lang/String;Lorg/json/JSONObject;Ljava/util/List;JJ)Ljava/lang/String;", "Lcom/finogeeks/lib/applet/externallib/okio/ByteString;", "data", "sendMessage", "(Lcom/finogeeks/lib/applet/externallib/okio/ByteString;)Z", "(Ljava/lang/String;)Z", "Lcom/finogeeks/lib/applet/api/network/websocket/WebSocketClient$Callback;", "Lcom/finogeeks/lib/applet/externallib/okhttp3/OkHttpClient;", "kotlin.jvm.PlatformType", "okHttpClient$delegate", "Llg0/h;", "getOkHttpClient", "()Lcom/finogeeks/lib/applet/externallib/okhttp3/OkHttpClient;", "okHttpClient", "Ljava/lang/String;", "getSocketId", "()Ljava/lang/String;", "Lcom/finogeeks/lib/applet/externallib/okhttp3/WebSocket;", "webSocket", "Lcom/finogeeks/lib/applet/externallib/okhttp3/WebSocket;", "Callback", "Companion", "finapplet_release"}, k = 1, mv = {1, 4, 0})
public final class WebSocketClient {
    private final h a;
    private g0 b;
    private final String c;
    private final a d;
    static final l[] e = {kotlin.jvm.internal.g0.j(new y(kotlin.jvm.internal.g0.b(WebSocketClient.class), "okHttpClient", "getOkHttpClient()Lcom/finogeeks/lib/applet/externallib/okhttp3/OkHttpClient;"))};
    public static final b l = new b(null);
    private static final b.a f = new b.a(1004, "open fail:_code:22_msg:Invalid argument", "连接异常-IP格式错误");
    private static final b.a g = new b.a(1004, "open fail: _code:113,_msg:No route to host", "连接异常-IP格式正确,但是IP无效");
    private static final b.a h = new b.a(1004, "open fail:_code:23,_msg:The total timed out", "连接异常-超时(IP对,端口错)");
    private static final b.a i = new b.a(1004, "open fail: _code:8,_msg:TLS handshake failed", "连接异常-SSL证书错误,wss格式不支持");
    private static final b.a j = new b.a(1006, "", "连接异常-服务器断连");
    private static final b.a k = new b.a(1006, "abnormal closure", "连接异常");

    public interface a {
        void a(String str);

        void a(String str, int i, String str2);

        void a(String str, f fVar);

        void a(String str, String str2);

        void a(String str, JSONObject jSONObject);

        void b(String str, int i, String str2);
    }

    @Metadata(bv = {1, 0, 3}, d1 = {"\u0000,\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0004\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0010\u0003\n\u0002\b\u0002\b\u0086\u0003\u0018\u00002\u00020\u0001:\u0001\u0011B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J\u000e\u0010\u000e\u001a\u00020\u00042\u0006\u0010\u000f\u001a\u00020\u0010R\u000e\u0010\u0003\u001a\u00020\u0004X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u0005\u001a\u00020\u0004X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0007X\u0086T¢\u0006\u0002\n\u0000R\u000e\u0010\b\u001a\u00020\u0004X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\t\u001a\u00020\u0004X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\n\u001a\u00020\u0004X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u000b\u001a\u00020\fX\u0082T¢\u0006\u0002\n\u0000R\u000e\u0010\r\u001a\u00020\u0004X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\u0012"}, d2 = {"Lcom/finogeeks/lib/applet/api/network/websocket/WebSocketClient$Companion;", "", "()V", "CONNECT_EXCEPTION", "Lcom/finogeeks/lib/applet/api/network/websocket/WebSocketClient$Companion$WebSocketErr;", "CONNECT_NO_ROUTE_EXCEPTION", "ERR_CODE", "", "OTHER_EXCEPTION", "SERVER_SOCKET_EXCEPTION", "SSL_EXCEPTION", "TAG", "", "TIMEOUT_EXCEPTION", "convert", "t", "", "WebSocketErr", "finapplet_release"}, k = 1, mv = {1, 1, 16})
    public static final class b {

        public static final class a {
            private final int a;
            private final String b;
            private final String c;

            public a(int i, String str, String str2) {
                n.j(str, "errMsg");
                n.j(str2, "desc");
                this.a = i;
                this.b = str;
                this.c = str2;
            }

            public final int a() {
                return this.a;
            }

            public final String b() {
                return this.b;
            }

            public boolean equals(Object obj) {
                if (this == obj) {
                    return true;
                }
                if (!(obj instanceof a)) {
                    return false;
                }
                a aVar = (a) obj;
                return this.a == aVar.a && n.d(this.b, aVar.b) && n.d(this.c, aVar.c);
            }

            public int hashCode() {
                int i = this.a * 31;
                String str = this.b;
                int hashCode = (i + (str != null ? str.hashCode() : 0)) * 31;
                String str2 = this.c;
                return hashCode + (str2 != null ? str2.hashCode() : 0);
            }

            public String toString() {
                return "WebSocketErr(errCode=" + this.a + ", errMsg=" + this.b + ", desc=" + this.c + ")";
            }
        }

        private b() {
        }

        public b(DefaultConstructorMarker defaultConstructorMarker) {
            this();
        }

        public final a a(Throwable th2) {
            String message;
            n.j(th2, "t");
            if (th2 instanceof ConnectException) {
                Throwable cause = th2.getCause();
                if (cause != null && (message = cause.getMessage()) != null) {
                    r3 = Boolean.valueOf(u.Q(message, "No route to host", false, 2, (Object) null));
                }
                return n.d(r3, Boolean.TRUE) ? WebSocketClient.g : WebSocketClient.f;
            }
            if (th2 instanceof SocketTimeoutException) {
                return WebSocketClient.h;
            }
            if (th2 instanceof SSLException) {
                return WebSocketClient.i;
            }
            if (!(th2 instanceof SocketException)) {
                return WebSocketClient.k;
            }
            String message2 = th2.getMessage();
            return n.d(message2 != null ? Boolean.valueOf(u.Q(message2, "Connection reset", false, 2, (Object) null)) : null, Boolean.TRUE) ? WebSocketClient.j : WebSocketClient.k;
        }
    }

    public static final class c extends h0 {
        public c() {
        }

        @Override
        public void a(g0 g0Var, int i, String str) {
            n.j(g0Var, "webSocket");
            n.j(str, "reason");
            FLog.d$default("WebSocketClient", "onClosed code=" + i + ", reason=" + str, null, 4, null);
            WebSocketClient.this.d.b(WebSocketClient.this.getC(), i, str);
        }

        @Override
        public void a(g0 g0Var, c0 c0Var) {
            n.j(g0Var, "webSocket");
            n.j(c0Var, "response");
            FLog.d$default("WebSocketClient", "onOpen response=" + c0Var, null, 4, null);
            s q = c0Var.q();
            JSONObject jSONObject = new JSONObject();
            int d = q.d();
            for (int i = 0; i < d; i++) {
                jSONObject.put(q.a(i), q.b(i));
            }
            WebSocketClient.this.d.a(WebSocketClient.this.getC(), jSONObject);
        }

        @Override
        public void a(g0 g0Var, f fVar) {
            n.j(g0Var, "webSocket");
            n.j(fVar, "bytes");
            FLog.d$default("WebSocketClient", "onMessage bytes=" + fVar, null, 4, null);
            WebSocketClient.this.d.a(WebSocketClient.this.getC(), fVar);
        }

        @Override
        public void a(g0 g0Var, String str) {
            n.j(g0Var, "webSocket");
            n.j(str, "text");
            FLog.d$default("WebSocketClient", "onMessage text=" + str, null, 4, null);
            WebSocketClient.this.d.a(WebSocketClient.this.getC(), str);
        }

        @Override
        public void a(g0 g0Var, Throwable th2, c0 c0Var) {
            n.j(g0Var, "webSocket");
            n.j(th2, "t");
            StringBuilder sb = new StringBuilder();
            sb.append("onFailure error=");
            sb.append(th2);
            sb.append(", response=");
            sb.append(c0Var != null ? c0Var.toString() : null);
            FLog.d$default("WebSocketClient", sb.toString(), null, 4, null);
            b.a a = WebSocketClient.l.a(th2);
            if (a.a() != 1004) {
                WebSocketClient.this.d.b(WebSocketClient.this.getC(), a.a(), a.b());
            } else {
                WebSocketClient.this.d.a(WebSocketClient.this.getC(), a.a(), a.b());
            }
            WebSocketClient.this.d.a(WebSocketClient.this.getC());
            FLog.d$default("WebSocketClient", "onFailure error= " + a, null, 4, null);
        }

        @Override
        public void b(g0 g0Var, int i, String str) {
            n.j(g0Var, "webSocket");
            n.j(str, "reason");
            FLog.d$default("WebSocketClient", "onClosing code=" + i + ", reason=" + str, null, 4, null);
        }
    }

    public static final class d extends p implements ah0.a<x> {
        final Host a;

        public d(Host host) {
            super(0);
            this.a = host;
        }

        public final x m156invoke() {
            x.b bVar = new x.b();
            TimeUnit timeUnit = TimeUnit.SECONDS;
            x.b a = bVar.d(100L, timeUnit).c(100L, timeUnit).a(100L, timeUnit);
            n.e(a, "OkHttpClient.Builder()\n …ut(100, TimeUnit.SECONDS)");
            FinAppletHostnameVerifier.a aVar = null;
            x.b a2 = r.b(a).a(new FinAppletHostnameVerifier(this.a, aVar, 2, aVar));
            if (this.a.getFinAppConfig().isIgnoreWebviewCertAuth()) {
                r.a(a2);
            }
            return a2.a();
        }
    }

    public WebSocketClient(Host host, String str, a aVar) {
        n.j(host, "host");
        n.j(str, "socketId");
        n.j(aVar, "callback");
        this.c = str;
        this.d = aVar;
        this.a = i.a(new d(host));
    }

    private final x h() {
        h hVar = this.a;
        l lVar = e[0];
        return (x) hVar.getValue();
    }

    public final String getC() {
        return this.c;
    }

    public final String a(String str, JSONObject jSONObject, List<String> list, long j2, long j3) {
        n.j(str, "url");
        x.b t = h().t();
        if (j2 > 0) {
            TimeUnit timeUnit = TimeUnit.MILLISECONDS;
            t.a(j2, timeUnit);
            t.c(j2, timeUnit);
            t.d(j2, timeUnit);
        }
        if (j3 >= 0) {
            t.b(j3, TimeUnit.MILLISECONDS);
        }
        x a2 = t != null ? t.a() : h();
        a0.a b2 = new a0.a().b(str);
        if (jSONObject != null) {
            b2.a(s.a(OkHttpUtil.d.a(jSONObject)));
        }
        if (list != null) {
            ArrayList arrayList = new ArrayList();
            for (String str2 : list) {
                if (t.y(str2)) {
                    str2 = null;
                }
                if (str2 != null) {
                    arrayList.add(str2);
                }
            }
            if (!arrayList.isEmpty()) {
                b2.a("Sec-WebSocket-Protocol", mg0.x.u0(arrayList, ", ", (CharSequence) null, (CharSequence) null, 0, (CharSequence) null, (ah0.l) null, 62, (Object) null));
            }
        }
        a0 a3 = b2.a();
        n.e(a2, "okHttpClient");
        StethoWebSocketFactory stethoWebSocketFactory = new StethoWebSocketFactory(a2);
        n.e(a3, FLogCommonTag.REQUEST);
        this.b = stethoWebSocketFactory.a(a3, new c());
        return null;
    }

    public final boolean a(int i2, String str) {
        g0 g0Var = this.b;
        if (g0Var != null) {
            return g0Var.a(i2, str);
        }
        return false;
    }

    public final boolean a(f fVar) {
        n.j(fVar, "data");
        g0 g0Var = this.b;
        if (g0Var != null) {
            return g0Var.a(fVar);
        }
        return false;
    }

    public final boolean a(String str) {
        n.j(str, "data");
        g0 g0Var = this.b;
        if (g0Var != null) {
            return g0Var.a(str);
        }
        return false;
    }
}