This commit is contained in:
unknown
2020-10-28 10:51:11 +08:00
parent 4f22536909
commit fae1897a00
5 changed files with 31 additions and 14 deletions

View File

@@ -2,7 +2,7 @@ package com.mogo.base.websocket;
import java.io.Serializable; import java.io.Serializable;
public class WebSocketData<T> implements Serializable { public class WebSocketData implements Serializable {
private long seq; private long seq;
@@ -10,7 +10,7 @@ public class WebSocketData<T> implements Serializable {
private String sn; private String sn;
private T t; private String data;
public long getSeq() { public long getSeq() {
return seq; return seq;
@@ -36,11 +36,11 @@ public class WebSocketData<T> implements Serializable {
this.sn = sn; this.sn = sn;
} }
public T getT() { public String getData() {
return t; return data;
} }
public void setT(T t) { public void setData(String data) {
this.t = t; this.data = data;
} }
} }

View File

@@ -5,6 +5,7 @@ import android.content.Context;
import androidx.annotation.Keep; import androidx.annotation.Keep;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.mogo.commons.network.Utils; import com.mogo.commons.network.Utils;
import com.mogo.service.connection.IMogoMsgAckListener; import com.mogo.service.connection.IMogoMsgAckListener;
import com.mogo.service.connection.IMogoOnWebSocketMessageListener; import com.mogo.service.connection.IMogoOnWebSocketMessageListener;
@@ -116,7 +117,8 @@ public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSettin
webSocketData.setSeq(System.currentTimeMillis()); webSocketData.setSeq(System.currentTimeMillis());
webSocketData.setMsgType(listener.getUpLinkType().getMsgType()); webSocketData.setMsgType(listener.getUpLinkType().getMsgType());
webSocketData.setSn(Utils.getSn()); 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)); handlerThread.sendMsg(new Gson().toJson(webSocketData));
} }
} }
@@ -145,8 +147,9 @@ public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSettin
while (iterator.hasNext()) { while (iterator.hasNext()) {
IMogoOnWebSocketMessageListener listener = iterator.next(); IMogoOnWebSocketMessageListener listener = iterator.next();
if (listener != null) { if (listener != null) {
Logger.d(TAG, "received msgId = " + webSocketData.getSeq() + ", content = " + webSocketData.getT().toString()); Logger.d(TAG, "received msgId = " + webSocketData.getSeq() + ", content = " + webSocketData.getData());
listener.onMsgReceived(webSocketData.getT()); Object receiveObj = GsonUtil.objectFromJson(webSocketData.getData(),listener.target());
listener.onMsgReceived(receiveObj);
} }
} }
} }

View File

@@ -232,6 +232,11 @@ public class AdasNoticeHelper implements IMogoAdasWarnMessageCallback, IMogoLoca
return WebSocketMsgType.MSG_TYPE_DOWNLINK_CAR_DATA; return WebSocketMsgType.MSG_TYPE_DOWNLINK_CAR_DATA;
} }
@Override
public Class<MogoSnapshotSetData> target() {
return MogoSnapshotSetData.class;
}
@Override @Override
public void onMsgReceived(MogoSnapshotSetData obj) { public void onMsgReceived(MogoSnapshotSetData obj) {
Logger.d(TAG, "收到大而全数据: " + obj); Logger.d(TAG, "收到大而全数据: " + obj);

View File

@@ -146,6 +146,11 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
return WebSocketMsgType.MSG_TYPE_DOWNLINK_CAR_DATA; return WebSocketMsgType.MSG_TYPE_DOWNLINK_CAR_DATA;
} }
@Override
public Class<MogoSnapshotSetData> target() {
return MogoSnapshotSetData.class;
}
@Override @Override
public void onMsgReceived( MogoSnapshotSetData data ) { public void onMsgReceived( MogoSnapshotSetData data ) {
if ( data == null ) { if ( data == null ) {

View File

@@ -3,21 +3,25 @@ package com.mogo.service.connection;
/** /**
* 消息回调 * 消息回调
*/ */
public interface IMogoOnWebSocketMessageListener< T > { public interface IMogoOnWebSocketMessageListener<T> {
default WebSocketMsgType getDownLinkType(){ default WebSocketMsgType getDownLinkType() {
return null; return null;
} }
default WebSocketMsgType getUpLinkType(){ default WebSocketMsgType getUpLinkType() {
return null; return null;
} }
default void onMsgReceived(T obj){ default Class<T> target() {
return null;
}
default void onMsgReceived(T obj) {
} }
default void onError(String errorMsg){ default void onError(String errorMsg) {
} }
} }