From 2eaf96533dc76cdfb422974c56ff5e11a4d0a386 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Mon, 30 Nov 2020 09:57:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E8=AF=95httpDns=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=8A=E6=8A=A5=E6=97=B6=E9=97=B4=E9=97=B4=E9=9A=94?= =?UTF-8?q?=E4=B8=BA500ms?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/websocket/WebSocketConstant.java | 27 ++++++++++++++++--- .../base/websocket/WebSocketDnsManager.java | 12 +++++---- .../mogo/base/websocket/WebSocketManager.java | 13 +++++---- .../service/location/MogoRTKLocation.java | 2 +- .../service/connection/WebSocketMsgType.java | 3 ++- 5 files changed, 42 insertions(+), 15 deletions(-) diff --git a/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketConstant.java b/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketConstant.java index 9fc42f1ddf..a34166a694 100644 --- a/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketConstant.java +++ b/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketConstant.java @@ -10,7 +10,13 @@ public class WebSocketConstant { private static final String HOST_DEMO = "ws://62.234.196.121"; private static final String HOST_RELEASE = "ws://62.234.196.121"; // private static final String PORT = ":14001/ws"; - private static final String PORT = ":4003/ws"; + public static final String PORT = ":4003/ws"; + public static final String PROTOCOL = "ws://"; + + private static final String DOMAIN_DEV = "dzt-city.zhidaozhixing.com"; + private static final String DOMAIN_QA = "dzt-city.zhidaozhixing.com"; + private static final String DOMAIN_DEMO = "dzt-city.zhidaozhixing.com"; + private static final String DOMAIN_RELEASE = "dzt-city.zhidaozhixing.com"; public static String getSocketServer() { switch (DebugConfig.getNetMode()) { @@ -26,7 +32,22 @@ public class WebSocketConstant { } } - public static String getSocketPort() { - return PORT; + public static String getDomain(){ + switch (DebugConfig.getNetMode()) { + case DebugConfig.NET_MODE_DEV: + return DOMAIN_DEV; + case DebugConfig.NET_MODE_QA: + return DOMAIN_QA; + case DebugConfig.NET_MODE_DEMO: + return DOMAIN_DEMO; + case DebugConfig.NET_MODE_RELEASE: + default: + return DOMAIN_RELEASE; + } } + +// public static String getSocketPort() { +// return PORT; +// } + } diff --git a/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketDnsManager.java b/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketDnsManager.java index 12e1ac9ae8..52b33f2d5c 100644 --- a/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketDnsManager.java +++ b/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketDnsManager.java @@ -27,20 +27,22 @@ public class WebSocketDnsManager { public void getHttpDnsIp(WebSocketDns webSocketDns) { this.webSocketDns = webSocketDns; IMogoHttpDns mogoHttpDns = ARouter.getInstance().navigation(IMogoHttpDns.class); - ThreadPoolService.execute(() -> mogoHttpDns.getHttpDnsIp(WebSocketConstant.getSocketServer(), true, ip -> { + ThreadPoolService.execute(() -> mogoHttpDns.getHttpDnsIp(WebSocketConstant.getDomain(), false, ip -> { Logger.d(TAG, "getHttpDnsIp ip : " + ip + " , 得到Dns IP,准备回调 初始化webSocket"); this.cacheIp = ip; - this.webSocketDns.getDnsIp((cacheIp != null ? cacheIp : WebSocketConstant.getSocketServer() + WebSocketConstant.getSocketPort())); + this.webSocketDns.getDnsIp((cacheIp != null ? + WebSocketConstant.PROTOCOL + ip + WebSocketConstant.PORT : + WebSocketConstant.getSocketServer() + WebSocketConstant.PORT)); })); - mogoHttpDns.addHttpDnsTtlCallback(WebSocketConstant.getSocketServer(), () -> { + mogoHttpDns.addHttpDnsTtlCallback(WebSocketConstant.getDomain(), () -> { Logger.d(TAG, "ttl callBack ,ready to getCache Dns IP"); - String dnsCacheIp = mogoHttpDns.getCachedHttpDnsIps(WebSocketConstant.getSocketServer()); + String dnsCacheIp = mogoHttpDns.getCachedHttpDnsIps(WebSocketConstant.getDomain()); if (dnsCacheIp == null) { return; } Logger.d(TAG, "获取缓存Dns IP : " + dnsCacheIp + " , 原缓存 IP : " + cacheIp); if (cacheIp != null && !cacheIp.equals(dnsCacheIp)) { - this.webSocketDns.ttlIp(dnsCacheIp + WebSocketConstant.getSocketPort()); + this.webSocketDns.ttlIp(dnsCacheIp + WebSocketConstant.PORT); } }); } diff --git a/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketManager.java b/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketManager.java index 29e6bf9507..d0c73c3d4a 100644 --- a/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketManager.java +++ b/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketManager.java @@ -23,6 +23,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import static com.mogo.service.connection.WebSocketMsgType.MSG_TYPE_ACK; import static com.mogo.service.connection.WebSocketMsgType.MSG_TYPE_DOWNLINK_CAR_DATA; @Keep @@ -181,11 +182,7 @@ public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSettin WebSocketData webSocketData = GsonUtil.objectFromJson(message, WebSocketData.class); int msgType = webSocketData.getMsgType(); Logger.d(TAG, "websocket received msg type = " + msgType); - if (webSocketData.getUtcTime() > 0) { - serverTime = webSocketData.getUtcTime(); - receiveMsgTime = SystemClock.elapsedRealtime(); - Logger.d(TAG, "设置serverTime"); - } + //服务端下发数据返回,上传数据回执默认不返回 if (msgType == MSG_TYPE_DOWNLINK_CAR_DATA.getMsgType()) { List listeners = mListeners.get(msgType); @@ -200,6 +197,12 @@ public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSettin } } } + } else if (msgType == MSG_TYPE_ACK.getMsgType()) { + if (webSocketData.getUtcTime() > 0) { + serverTime = webSocketData.getUtcTime(); + receiveMsgTime = SystemClock.elapsedRealtime(); + Logger.d(TAG, "设置serverTime"); + } } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/location/MogoRTKLocation.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/location/MogoRTKLocation.java index 16be8c3d3f..703719a825 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/location/MogoRTKLocation.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/location/MogoRTKLocation.java @@ -24,7 +24,7 @@ public class MogoRTKLocation { private static final String TAG = "MogoRTKLocation"; private static final int MSG_DATA_CHANGED = 0x100; - private static final long MSG_DATA_INTERNAL = 1 * 1_000L; + private static final long MSG_DATA_INTERNAL = 500L; private Handler mHandler; private LocationManager locationManager; diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/connection/WebSocketMsgType.java b/services/mogo-service-api/src/main/java/com/mogo/service/connection/WebSocketMsgType.java index b0a113d31d..27635e97e7 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/connection/WebSocketMsgType.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/connection/WebSocketMsgType.java @@ -3,7 +3,8 @@ package com.mogo.service.connection; public enum WebSocketMsgType { MSG_TYPE_UPLINK_CAR_DATA(0,"自车与ADAS数据"), - MSG_TYPE_DOWNLINK_CAR_DATA(1,"服务端下发车辆信息"); + MSG_TYPE_DOWNLINK_CAR_DATA(1,"服务端下发车辆信息"), + MSG_TYPE_ACK(3, "ACK"); private int msgType; private String msg;