public void run()

in GaiaXAndroidClientToStudio/src/main/java/com/alibaba/gaiax/studio/third/socket/websocket/dispatcher/MainThreadResponseDelivery.java [288:356]


        public void run() {
            try {
                if (type == NON ||
                        mSocketListenerList == null ||
                        mSocketListenerList.isEmpty()) {
                    return;
                }
                //check null
                if (type == CONNECT_FAILED && connectErrorCause == null) return;
                if (type == SEND_ERROR && errorResponse == null) return;
                if (type == STRING_MSG && TextUtils.isEmpty(textResponse)) return;
                if (type == BYTE_BUFFER_MSG && byteResponse == null) return;
                if (type == PING && framedataResponse == null) return;
                if (type == PONG && framedataResponse == null) return;
                synchronized (LISTENER_BLOCK) {
                    switch (type) {
                        case CONNECTED:
                            for (SocketListener listener : mSocketListenerList) {
                                listener.onConnected();
                            }
                            break;
                        case CONNECT_FAILED:
                            for (SocketListener listener : mSocketListenerList) {
                                listener.onConnectFailed(connectErrorCause);
                            }
                            break;
                        case DISCONNECT:
                            for (SocketListener listener : mSocketListenerList) {
                                listener.onDisconnect();
                            }
                            break;
                        case SEND_ERROR:
                            for (SocketListener listener : mSocketListenerList) {
                                listener.onSendDataError(errorResponse);
                            }
                            break;
                        case STRING_MSG:
                            for (SocketListener listener : mSocketListenerList) {
                                listener.onMessage(textResponse, formattedData);
                            }
                            break;
                        case BYTE_BUFFER_MSG:
                            for (SocketListener listener : mSocketListenerList) {
                                listener.onMessage(byteResponse, formattedData);
                            }
                            break;
                        case PING:
                            for (SocketListener listener : mSocketListenerList) {
                                listener.onPing(framedataResponse);
                            }
                            break;
                        case PONG:
                            for (SocketListener listener : mSocketListenerList) {
                                listener.onPong(framedataResponse);
                            }
                            break;
                    }
                    mSocketListenerList = null;
                    errorResponse = null;
                    connectErrorCause = null;
                    textResponse = null;
                    byteResponse = null;
                    framedataResponse = null;
                    formattedData = null;
                }
            } finally {
                RUNNABLE_POOL.offer(this);
            }
        }