This commit is contained in:
tongchenfei
2020-10-27 15:53:34 +08:00
parent c18eafb463
commit 2dce3f8254
10 changed files with 336 additions and 130 deletions

View File

@@ -17,12 +17,17 @@ public class WebSocketHandlerThread extends HandlerThread {
public WebSocketHandlerThread(String name) {
super(name);
tag = name;
}
@Override
public void run() {
super.run();
mHandler = new Handler(this.getLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == MSG_SEND) {
Logger.d(tag, "WebSocketHandlerThread handleMessage = %d", msg.obj.toString());
Logger.d(tag, "WebSocketHandlerThread handleMessage = " + msg.obj.toString());
SocketClient.getInstance().getClientProxy().sendMessage(msg.obj.toString());
}
}
@@ -30,10 +35,12 @@ public class WebSocketHandlerThread extends HandlerThread {
}
public void sendMsg(String msg) {
Message message = new Message();
message.what = MSG_SEND;
message.obj = msg;
mHandler.sendMessage(message);
if(mHandler!=null) {
Message message = new Message();
message.what = MSG_SEND;
message.obj = msg;
mHandler.sendMessage(message);
}
}
}

View File

@@ -24,7 +24,8 @@ import java.util.concurrent.ConcurrentHashMap;
import static com.mogo.service.connection.WebSocketMsgType.MSG_TYPE_DOWNLINK_CAR_DATA;
@Keep
public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSetting, ISocketMsgCallBack {
public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSetting,
ISocketMsgCallBack {
private static final String TAG = "WebSocketManager-sdk";
@@ -53,7 +54,8 @@ public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSettin
* <p>
* key - msgType
*/
private Map<Integer, List<IMogoOnWebSocketMessageListener>> mListeners = new ConcurrentHashMap<>();
private Map<Integer, List<IMogoOnWebSocketMessageListener>> mListeners =
new ConcurrentHashMap<>();
/**
* 管理消息回执
@@ -77,9 +79,7 @@ public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSettin
return;
}
int msgType = listener.getDownLinkType().getMsgType();
if (mListeners.containsKey(msgType)) {
Logger.w(TAG, "websocket msgType %d is exist.", msgType);
}
if (!mListeners.containsKey(msgType)) {
mListeners.put(msgType, new ArrayList<>());
}
@@ -109,7 +109,7 @@ public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSettin
@Override
public void sendMsg(Object body, IMogoOnWebSocketMessageListener listener) {
Logger.d(TAG, "websocket sendMsg body = %d , listener = %d ", body, listener);
Logger.d(TAG, "websocket sendMsg body = " + body);
if (handlerThread != null) {
WebSocketData webSocketData = new WebSocketData();
webSocketData.setSeq(System.currentTimeMillis());
@@ -131,10 +131,10 @@ public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSettin
@Override
public void handleMessage(String message) {
Logger.d(TAG, "websocket received msg = %d ", message);
Logger.d(TAG, "websocket received msg = " + message);
WebSocketData webSocketData = GsonUtil.objectFromJson(message, WebSocketData.class);
int msgType = webSocketData.getMsgType();
Logger.d(TAG, "websocket received msg type = %d", msgType);
Logger.d(TAG, "websocket received msg type = " + msgType);
//服务端下发数据返回,上传数据回执默认不返回
if (msgType == MSG_TYPE_DOWNLINK_CAR_DATA.getMsgType()) {
List<IMogoOnWebSocketMessageListener> listeners = mListeners.get(msgType);
@@ -143,7 +143,7 @@ public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSettin
while (iterator.hasNext()) {
IMogoOnWebSocketMessageListener listener = iterator.next();
if (listener != null) {
Logger.d(TAG, "received msgId = %s, content = %s", webSocketData.getSeq(), webSocketData.getT().toString());
Logger.d(TAG, "received msgId = "+webSocketData.getSeq()+", content = "+webSocketData.getT().toString());
listener.onMsgReceived(webSocketData.getT());
}
}
@@ -159,7 +159,7 @@ public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSettin
@Override
public void handleError(Exception e) {
Logger.e(TAG, "websocket handleError : %d", e.getMessage());
Logger.e(TAG, "websocket handleError :" + e.getMessage());
}
@Override