diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 27207cc..c4d70da 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -7,7 +7,11 @@ +<<<<<<< HEAD +======= + +>>>>>>> yingyan_location diff --git a/.idea/misc.xml b/.idea/misc.xml index 0beb143..224aafb 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -13,7 +13,11 @@ +<<<<<<< HEAD +======= + +>>>>>>> yingyan_location diff --git a/app/src/main/java/com/mogo/cloud/MoGoApplication.java b/app/src/main/java/com/mogo/cloud/MoGoApplication.java index 84e53e8..c1814fa 100644 --- a/app/src/main/java/com/mogo/cloud/MoGoApplication.java +++ b/app/src/main/java/com/mogo/cloud/MoGoApplication.java @@ -6,6 +6,7 @@ import android.support.multidex.MultiDexApplication; import android.util.Log; import com.auto.zhidao.logsdk.CrashSystem; +import com.mogo.cloud.httpdns.MogoHttpDnsClient; import com.mogo.cloud.httpdns.MogoHttpDnsConfig; import com.mogo.cloud.httpdns.bean.HttpDnsSimpleLocation; import com.mogo.cloud.httpdns.listener.IHttpDnsCurrentLocation; diff --git a/foudations/mogo-httpdns/src/main/java/com/mogo/cloud/httpdns/HttpDnsHelper.kt b/foudations/mogo-httpdns/src/main/java/com/mogo/cloud/httpdns/HttpDnsHelper.kt index 917d86a..b73df90 100644 --- a/foudations/mogo-httpdns/src/main/java/com/mogo/cloud/httpdns/HttpDnsHelper.kt +++ b/foudations/mogo-httpdns/src/main/java/com/mogo/cloud/httpdns/HttpDnsHelper.kt @@ -10,7 +10,6 @@ import com.mogo.cloud.httpdns.util.ApiManager import com.mogo.cloud.httpdns.util.L import com.mogo.cloud.httpdns.util.NetWorkUtil import java.util.* -import kotlin.collections.ArrayList /** * 1. 本地每15min查询一次 @@ -18,7 +17,8 @@ import kotlin.collections.ArrayList * * @author tongchenfei */ -internal class HttpDnsHelper(private val builder: MogoHttpDnsConfig) : Handler.Callback,IMogoHttpDns { +internal class HttpDnsHelper(private val builder: MogoHttpDnsConfig) : Handler.Callback, + IMogoHttpDns { companion object { const val HTTP_DNS_TYPE_HTTP = 0 const val HTTP_DNS_TYPE_WS = 1 @@ -34,12 +34,10 @@ internal class HttpDnsHelper(private val builder: MogoHttpDnsConfig) : Handler.C private val workThread = HandlerThread("mogo-http-dns-work-thread") private val handler: Handler private var addressMap: Map? = null - - var addressChangedListener: OnAddressChangedListener? = null + private var addressChangedListener: OnAddressChangedListener? = null private val apiManager: ApiManager private var isInit = false - private var defaultUrl: String? = null init { @@ -65,7 +63,6 @@ internal class HttpDnsHelper(private val builder: MogoHttpDnsConfig) : Handler.C } private fun getHttpDnsAddressFromNet() { - val nAddress = apiManager.requestHttpDns(builder.getCurrentLocation()!!) if (addressChangedListener == null) { L.d(TAG, "addressChangeList is null") @@ -74,8 +71,8 @@ internal class HttpDnsHelper(private val builder: MogoHttpDnsConfig) : Handler.C addressMap = nAddress addressChangedListener?.onAddressChanged(addressMap) } else if (nAddress != null) { - addressChangedListener?.onAddressChanged(mapDiff(nAddress, addressMap!!)) addressMap = nAddress + addressChangedListener?.onAddressChanged(mapDiff(nAddress, addressMap!!)) } } @@ -86,15 +83,35 @@ internal class HttpDnsHelper(private val builder: MogoHttpDnsConfig) : Handler.C private val requestLock = Any() + override fun addressChangedListener(addressChangedListener: OnAddressChangedListener) { + this.addressChangedListener = addressChangedListener + } + + override fun syncGetHttpDns(host: String, type: Int, useCache: Boolean): String? { + L.d(TAG, "syncGetHttpDns $type-$host") + return if (useCache) { + val address: String? = getHttpDnsCachedAddress(type, host) + address ?: getHttpDnsAddress(type, host) + } else { + getHttpDnsAddress(type, host) + } + } + override fun getHttpDnsAddress(type: Int, _host: String): String? { val host = _host.toLowerCase(Locale.getDefault()) if (isInit) { requestCache.add("$type-$host") synchronized(requestLock) { - L.d(TAG, "getHttpDnsAddress: $type-$host \n thread: ${Thread.currentThread().name} isRequest: $isRequest") + L.d( + TAG, + "getHttpDnsAddress: $type-$host \n thread: ${Thread.currentThread().name} isRequest: $isRequest" + ) if (!isRequest) { isRequest = true - L.d(TAG, "prepare to get http dns from net thread: ${Thread.currentThread().name}") + L.d( + TAG, + "prepare to get http dns from net thread: ${Thread.currentThread().name}" + ) getHttpDnsAddressFromNet() } } diff --git a/foudations/mogo-httpdns/src/main/java/com/mogo/cloud/httpdns/MogoHttpDnsClient.kt b/foudations/mogo-httpdns/src/main/java/com/mogo/cloud/httpdns/MogoHttpDnsClient.kt index a118de1..cde63ec 100644 --- a/foudations/mogo-httpdns/src/main/java/com/mogo/cloud/httpdns/MogoHttpDnsClient.kt +++ b/foudations/mogo-httpdns/src/main/java/com/mogo/cloud/httpdns/MogoHttpDnsClient.kt @@ -1,6 +1,7 @@ package com.mogo.cloud.httpdns import com.mogo.cloud.httpdns.listener.IMogoHttpDns +import com.mogo.cloud.httpdns.listener.OnAddressChangedListener object MogoHttpDnsClient : IMogoHttpDns { @@ -20,6 +21,20 @@ object MogoHttpDnsClient : IMogoHttpDns { return getHttpDnsCachedAddress(type, _host) ?: return getHttpDnsAddress(type, _host) } + override fun addressChangedListener(addressChangedListener: OnAddressChangedListener) { + if (httpDnsHelper == null) { + throw IllegalStateException("MogoHttpDnsClient init error") + } + return httpDnsHelper!!.addressChangedListener(addressChangedListener) + } + + override fun syncGetHttpDns(host: String, type: Int, useCache: Boolean): String? { + if (httpDnsHelper == null) { + throw IllegalStateException("MogoHttpDnsClient init error") + } + return httpDnsHelper!!.syncGetHttpDns(host, type, useCache) + } + override fun getHttpDnsAddress(type: Int, _host: String): String? { if (httpDnsHelper == null) { throw IllegalStateException("MogoHttpDnsClient init error") diff --git a/foudations/mogo-httpdns/src/main/java/com/mogo/cloud/httpdns/listener/IMogoHttpDns.kt b/foudations/mogo-httpdns/src/main/java/com/mogo/cloud/httpdns/listener/IMogoHttpDns.kt index 75e45bc..476a52c 100644 --- a/foudations/mogo-httpdns/src/main/java/com/mogo/cloud/httpdns/listener/IMogoHttpDns.kt +++ b/foudations/mogo-httpdns/src/main/java/com/mogo/cloud/httpdns/listener/IMogoHttpDns.kt @@ -3,6 +3,22 @@ package com.mogo.cloud.httpdns.listener import com.mogo.cloud.httpdns.HttpDnsHelper.Companion.HTTP_DNS_TYPE_HTTP interface IMogoHttpDns { + + /** + * 地址变更回调 + */ + fun addressChangedListener(addressChangedListener: OnAddressChangedListener); + + /** + * 同步进行dns解析,无需回调 + * @param host + * @param type + * @param useCache + * + * @return ip:port + */ + fun syncGetHttpDns(host: String, type: Int, useCache: Boolean): String? + /** * 根据类型和host获取IP,直接通过网络请求获取全部路由表 * 同时多线程多次请求会忽略部分网络请求,一定程度减少接口请求次数 diff --git a/foudations/mogo-network/src/main/java/com/mogo/cloud/network/NetConstants.kt b/foudations/mogo-network/src/main/java/com/mogo/cloud/network/NetConstants.kt index f26041f..e4e032a 100644 --- a/foudations/mogo-network/src/main/java/com/mogo/cloud/network/NetConstants.kt +++ b/foudations/mogo-network/src/main/java/com/mogo/cloud/network/NetConstants.kt @@ -26,6 +26,8 @@ class NetConstants { const val TECH_HOST = "http://tech-dev.zhidaozhixing.com" + const val MecEtl_HOST = "http://dzt-mecEtl.zhidaozhixing.com" + const val IM_SOCKET_DOMAIN = "dzt-im.zhidaozhixing.com" const val WEBSOCKET_DOMAIN = "dzt-Instant.zhidaozhixing.com" diff --git a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java index d3e1b6c..a17b86e 100644 --- a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java +++ b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java @@ -100,11 +100,6 @@ public class MoGoAiCloudClient { mAiCloudClientConfig.setToken(token); } - // 循环调用将数据传出去 - for (IMoGoTokenCallback tokenCallback : mTokenCallbacks) { - tokenCallback.onTokenGot(token, sn); - } - // 初始化HttpDNS mHttpDnsConfig = new MogoHttpDnsConfig() @@ -115,6 +110,11 @@ public class MoGoAiCloudClient { .setCurrentLocation(mAiCloudClientConfig.getIHttpDnsCurrentLocation()) .setLoopCheckDelay(mAiCloudClientConfig.getLoopCheckDelay()); MogoHttpDnsClient.INSTANCE.init(mHttpDnsConfig); + + // 循环调用将数据传出去 + for (IMoGoTokenCallback tokenCallback : mTokenCallbacks) { + tokenCallback.onTokenGot(token, sn); + } } @Override diff --git a/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/SocketManager.java b/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/SocketManager.java index c8307e3..c1f4cdc 100644 --- a/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/SocketManager.java +++ b/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/SocketManager.java @@ -210,15 +210,11 @@ public class SocketManager implements IMogoCloudSocketManager { } public synchronized void release() { - mListeners.clear(); - mAckListeners.clear(); if (cloudClientConfig.isThirdLogin()) { ThirdSocketManager.getInstance().release(); } else { InternalSocketManager.getInstance().release(); } - cloudClientConfig = null; - mInstance = null; } } diff --git a/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/third/ThirdSocketManager.java b/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/third/ThirdSocketManager.java index 70fc5bd..1e37856 100644 --- a/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/third/ThirdSocketManager.java +++ b/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/third/ThirdSocketManager.java @@ -53,7 +53,6 @@ public class ThirdSocketManager implements Callback { .setAuthPubKey(cloudClientConfig.getAuthPubKey()) .setDebug(cloudClientConfig.isShowDebugLog()); SocketClient.getInstance().registerSocketCallback(this); -// SocketClient.getInstance().registerSocketConnCallback(this); SocketClient.getInstance().start(context); } @@ -75,7 +74,6 @@ public class ThirdSocketManager implements Callback { boolean ack, long msgId) { SocketClient.getInstance().sendData(SOCKET_CHANNEL_ID, MogoCommon.Product.mogoBussiness.getNumber(), payload, headerType, ack, msgId); - } public synchronized void release() { diff --git a/gradle.properties b/gradle.properties index b383093..1e7dee4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -30,22 +30,22 @@ PASSWORD=xintai2018 RELEASE=true # AI CLOUD 云平台 # 工具类 -MOGO_UTILS_VERSION=1.1.27 +MOGO_UTILS_VERSION=1.1.33 # 网络请求 -MOGO_NETWORK_VERSION=1.1.27 +MOGO_NETWORK_VERSION=1.1.33 # 网络DNS -MOGO_HTTPDNS_VERSION=1.1.27 +MOGO_HTTPDNS_VERSION=1.1.33 # 鉴权 -MOGO_PASSPORT_VERSION=1.1.27 +MOGO_PASSPORT_VERSION=1.1.33 # 常链接 -MOGO_SOCKET_VERSION=1.1.27 +MOGO_SOCKET_VERSION=1.1.33 # 数据采集 -MOGO_REALTIME_VERSION=1.1.27 +MOGO_REALTIME_VERSION=1.1.33 # 探路,道路事件发布,获取 -MOGO_TANLU_VERSION=1.1.27 +MOGO_TANLU_VERSION=1.1.33 # 直播推流 -MOGO_LIVE_VERSION=1.1.27 +MOGO_LIVE_VERSION=1.1.33 # 直播拉流 -MOGO_TRAFFICLIVE_VERSION=1.1.27 +MOGO_TRAFFICLIVE_VERSION=1.1.33 # 定位服务 -MOGO_LOCATION_VERSION=1.1.27 +MOGO_LOCATION_VERSION=1.1.33