From a7f4f3329412caf6252928f1ecdd1d6d4f949118 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Wed, 17 May 2023 20:39:15 +0800 Subject: [PATCH] [3.2.0] fix bug of aiCloud sn problem and delay httpdns loc change until 10s --- .../aicloud/AiCloudSocketBizProvider.kt | 1 - .../function/main/MainMoGoApplication.java | 8 +++--- .../startup/stageone/HttpDnsStartUp.kt | 27 ++++++++++++++++--- .../services/socket/IMogoSocketManager.java | 2 +- .../socket/MogoAiCloudSocketManager.java | 4 +-- gradle.properties | 18 ++++++------- 6 files changed, 38 insertions(+), 22 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/AiCloudSocketBizProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/AiCloudSocketBizProvider.kt index 971e7b2af2..8625327f70 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/AiCloudSocketBizProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/AiCloudSocketBizProvider.kt @@ -13,7 +13,6 @@ class AiCloudSocketBizProvider : IMoGoFunctionServerProvider { override fun init(context: Context?) { context?.let { - SocketManager.getInstance().init(it, 0.0, 0.0) SocketManager.getInstance().registerOnMessageListener(401012, V2XMessageListener401012()) SocketManager.getInstance().registerOnMessageListener(401018, V2XMessageListener401018()) SocketManager.getInstance().registerOnMessageListener(402000, V2XMessageListener402000()) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index 22ffa6de73..a0eed13f48 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -1,9 +1,8 @@ package com.mogo.eagle.core.function.main; -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_HMI; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_MAIN; import android.content.Context; -import android.os.Process; import com.bytedance.boost_multidex.BoostMultiDex; import com.mogo.cloud.socket.SocketBuildConfig; @@ -20,7 +19,6 @@ import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.AppLaunchTimeUtils; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.ProcessUtils; import java.lang.reflect.Field; @@ -73,7 +71,7 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { } private void initModules() { - CallerLogger.INSTANCE.d(M_HMI + TAG, "initModules"); + CallerLogger.INSTANCE.d(M_MAIN + TAG, "initModules"); // OBU 模块 MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_V2X_OBU_MOGO, "IMoGoObuProvider")); // BIZ @@ -85,7 +83,7 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { // 后置 地图数据收集模块 MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_MAP_DATA_COLLECT_PROVIDER, "MoGoMapDataCollector")); } - CallerLogger.INSTANCE.i(M_HMI + TAG, "App launch timer cost " + (System.currentTimeMillis() - start) + "ms"); + CallerLogger.INSTANCE.i(M_MAIN + TAG, "App launch timer cost " + (System.currentTimeMillis() - start) + "ms"); } @Override diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt index 79fb742f5d..ea68592ec3 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt @@ -1,6 +1,10 @@ package com.mogo.eagle.core.function.startup.stageone import android.content.Context +import android.os.Bundle +import android.os.Handler +import android.os.Looper +import android.os.Message import com.mogo.aicloud.services.locationinfo.MogoLocationInfoServices import com.mogo.aicloud.services.socket.IMogoLifecycleListener import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager @@ -50,6 +54,14 @@ class HttpDnsStartUp : AndroidStartup() { MoGoAiCloudClientConfig.getInstance() } + private val handler = Handler(Looper.getMainLooper()){ + if(it.what == 1){ + val value = it.obj as Pair + reConnectSocket(value.first, value.second) + } + true + } + private var context: Context? = null @Volatile @@ -57,7 +69,13 @@ class HttpDnsStartUp : AndroidStartup() { private var httpDnsSimpleLocation by Delegates.observable(getDefaultSimpleLocation()) { _, oldValue, newValue -> if (gotToken && oldValue.cityCode != newValue.cityCode) { - reConnectSocket(oldValue.cityCode, newValue.cityCode) + if(handler.hasMessages(1)){ + handler.removeMessages(1) + } + val msg = Message.obtain() + msg.what = 1 + msg.obj = Pair(oldValue.cityCode,newValue.cityCode) + handler.sendMessageDelayed(msg,1000L * 10) } } @@ -183,13 +201,14 @@ class HttpDnsStartUp : AndroidStartup() { ) override fun onTokenGot(token: String, sn: String) { clientConfig.token = token + clientConfig.sn = sn // 由于存在token过期问题,在更新后会回调至此处,增加二次判定 if (!gotToken) { CallerLogger.d("$M_MAIN$TAG", "onTokenGot token : $token , sn :$sn") CallerCloudListenerManager.invokeCloudTokenGot(token, sn) // 异步初始化NetConfig asyncInit() - startSocketService() + startSocketService(sn) // 开启每5s/次定位上报 uploadLocPerFiveSecond() gotToken = true @@ -253,7 +272,7 @@ class HttpDnsStartUp : AndroidStartup() { } } - private fun startSocketService() { + private fun startSocketService(sn:String) { CallerLogger.d("$M_MAIN$TAG", "startSocketService") val location = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() MogoAiCloudSocketManager.getInstance(context) @@ -315,7 +334,7 @@ class HttpDnsStartUp : AndroidStartup() { val lon = location?.longitude ?: CallerMapUIServiceManager.getGDLocationServer(context!!)!!.lastLon MogoAiCloudSocketManager.getInstance(context) - .init(context, DebugConfig.getSocketAppId(), lat, lon) + .init(context, sn, DebugConfig.getSocketAppId(), lat, lon) } @ChainLog( diff --git a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/IMogoSocketManager.java b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/IMogoSocketManager.java index 54f1b65fd8..f11256e201 100644 --- a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/IMogoSocketManager.java +++ b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/IMogoSocketManager.java @@ -19,7 +19,7 @@ public interface IMogoSocketManager extends IProvider { * @param context 上下文 * @param appId 一般为包名,不参与通道的建立,一般用于发消息 */ - void init( Context context, String appId , double lat, double lon); + void init( Context context, String sn ,String appId , double lat, double lon); /** * 重新连接 diff --git a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java index 18e7ed614f..d1fde2ab07 100644 --- a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java +++ b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java @@ -68,14 +68,14 @@ public class MogoAiCloudSocketManager extends ConnectionLifecycleListener implem private final Map mAckListeners = new ConcurrentHashMap<>(); @Override - public void init(Context context, String appId, double lat, double lon) { + public void init(Context context, String sn, String appId, double lat, double lon) { if(!ProcessUtils.isMainProcess()){ return; } this.mAppId = appId; SocketManager.getInstance().registerSocketConnCallback(this); SocketManager.getInstance().registerSocketErrorCallback(TAG, this); - SocketManager.getInstance().init(context, lat, lon); + SocketManager.getInstance().init(context, sn, lat, lon); } @Override diff --git a/gradle.properties b/gradle.properties index 4ae3edb87c..414b0806bf 100644 --- a/gradle.properties +++ b/gradle.properties @@ -66,23 +66,23 @@ SERVICE_BIZ_VERSION=1.2.4 LOGLIB_VERSION=1.5.27 ######## MogoAiCloudSDK Version ######## # 网络请求LOGLIB_VERSION -MOGO_NETWORK_VERSION=1.4.6.8 +MOGO_NETWORK_VERSION=1.4.7.2 # 鉴权 -MOGO_PASSPORT_VERSION=1.4.6.8 +MOGO_PASSPORT_VERSION=1.4.7.2 # 常链接 -MOGO_SOCKET_VERSION=1.4.6.8 +MOGO_SOCKET_VERSION=1.4.7.2 # 数据采集 -MOGO_REALTIME_VERSION=1.4.6.8 +MOGO_REALTIME_VERSION=1.4.7.2 # 探路,道路事件发布,获取 -MOGO_TANLU_VERSION=1.4.6.8 +MOGO_TANLU_VERSION=1.4.7.2 # 直播推流 -MOGO_LIVE_VERSION=1.4.6.8 +MOGO_LIVE_VERSION=1.4.7.2 # 直播拉流 -MOGO_TRAFFICLIVE_VERSION=1.4.6.8 +MOGO_TRAFFICLIVE_VERSION=1.4.7.2 # 定位服务 -MOGO_LOCATION_VERSION=1.4.6.8 +MOGO_LOCATION_VERSION=1.4.7.2 # 远程通讯模块 -MOGO_TELEMATIC_VERSION=1.4.6.8 +MOGO_TELEMATIC_VERSION=1.4.7.2 ######## MogoAiCloudSDK Version ######## # 自研地图 MAP_SDK_VERSION=2.12.1.1