diff --git a/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketData.java b/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketData.java index f86afcf64e..098b700382 100644 --- a/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketData.java +++ b/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketData.java @@ -2,7 +2,7 @@ package com.mogo.base.websocket; import java.io.Serializable; -public class WebSocketData implements Serializable { +public class WebSocketData implements Serializable { private long seq; @@ -10,7 +10,7 @@ public class WebSocketData implements Serializable { private String sn; - private T t; + private String data; public long getSeq() { return seq; @@ -36,11 +36,11 @@ public class WebSocketData implements Serializable { this.sn = sn; } - public T getT() { - return t; + public String getData() { + return data; } - public void setT(T t) { - this.t = t; + public void setData(String data) { + this.data = data; } } 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 e83e05a4a3..f8d85e6f04 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 @@ -5,6 +5,7 @@ import android.content.Context; import androidx.annotation.Keep; import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; import com.mogo.commons.network.Utils; import com.mogo.service.connection.IMogoMsgAckListener; import com.mogo.service.connection.IMogoOnWebSocketMessageListener; @@ -116,7 +117,8 @@ public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSettin webSocketData.setSeq(System.currentTimeMillis()); webSocketData.setMsgType(listener.getUpLinkType().getMsgType()); webSocketData.setSn(Utils.getSn()); - webSocketData.setT(body); + webSocketData.setData(new Gson().toJson(body)); + Logger.d(TAG,"sendMsg : " + new Gson().toJson(webSocketData)); handlerThread.sendMsg(new Gson().toJson(webSocketData)); } } @@ -145,8 +147,9 @@ public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSettin while (iterator.hasNext()) { IMogoOnWebSocketMessageListener listener = iterator.next(); if (listener != null) { - Logger.d(TAG, "received msgId = " + webSocketData.getSeq() + ", content = " + webSocketData.getT().toString()); - listener.onMsgReceived(webSocketData.getT()); + Logger.d(TAG, "received msgId = " + webSocketData.getSeq() + ", content = " + webSocketData.getData()); + Object receiveObj = GsonUtil.objectFromJson(webSocketData.getData(),listener.target()); + listener.onMsgReceived(receiveObj); } } } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/AdasNoticeHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/AdasNoticeHelper.java index 6cf28e9879..a9d42c76c3 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/AdasNoticeHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/AdasNoticeHelper.java @@ -232,6 +232,11 @@ public class AdasNoticeHelper implements IMogoAdasWarnMessageCallback, IMogoLoca return WebSocketMsgType.MSG_TYPE_DOWNLINK_CAR_DATA; } + @Override + public Class target() { + return MogoSnapshotSetData.class; + } + @Override public void onMsgReceived(MogoSnapshotSetData obj) { Logger.d(TAG, "收到大而全数据: " + obj); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java index d52be7d4d9..757e1044ab 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java @@ -146,6 +146,11 @@ public class MapMarkerManager implements IMogoMarkerClickListener, return WebSocketMsgType.MSG_TYPE_DOWNLINK_CAR_DATA; } + @Override + public Class target() { + return MogoSnapshotSetData.class; + } + @Override public void onMsgReceived( MogoSnapshotSetData data ) { if ( data == null ) { diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/connection/IMogoOnWebSocketMessageListener.java b/services/mogo-service-api/src/main/java/com/mogo/service/connection/IMogoOnWebSocketMessageListener.java index e3737d6e94..ddddd14868 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/connection/IMogoOnWebSocketMessageListener.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/connection/IMogoOnWebSocketMessageListener.java @@ -3,21 +3,25 @@ package com.mogo.service.connection; /** * 消息回调 */ -public interface IMogoOnWebSocketMessageListener< T > { +public interface IMogoOnWebSocketMessageListener { - default WebSocketMsgType getDownLinkType(){ + default WebSocketMsgType getDownLinkType() { return null; } - default WebSocketMsgType getUpLinkType(){ + default WebSocketMsgType getUpLinkType() { return null; } - default void onMsgReceived(T obj){ + default Class target() { + return null; + } + + default void onMsgReceived(T obj) { } - default void onError(String errorMsg){ + default void onError(String errorMsg) { } }