连接时,立马发缓存的最后一张图片到前端

master
yineng.huang 2024-07-25 18:11:40 +08:00
parent 47b6c0d728
commit 76a0e32244
2 changed files with 15 additions and 5 deletions

View File

@ -23,8 +23,6 @@ public class AndroidScreenResponseThread extends ImageScreenResponse {
private AdbDevice adbDevice; private AdbDevice adbDevice;
private byte[] lastData;
private final Logger logger = LoggerFactory.getLogger(AndroidScreenResponseThread.class); private final Logger logger = LoggerFactory.getLogger(AndroidScreenResponseThread.class);
public AndroidScreenResponseThread(AdbDevice adbDevice) { public AndroidScreenResponseThread(AdbDevice adbDevice) {
@ -107,7 +105,7 @@ public class AndroidScreenResponseThread extends ImageScreenResponse {
} }
//录屏 //录屏
if (null != screenRecorder) { if (null != screenRecorder) {
screenRecorder.addImgToVideo(screenPicContent); screenRecorder.addImgToVideo(this.lastData);
} }
//有后端会话则给后端推送屏幕图片 //有后端会话则给后端推送屏幕图片
if (!CollectionUtils.isEmpty(webSessions)) { if (!CollectionUtils.isEmpty(webSessions)) {
@ -120,7 +118,7 @@ public class AndroidScreenResponseThread extends ImageScreenResponse {
sendDeviceStatus = false; sendDeviceStatus = false;
} }
logger.info("设备【{}】发送图片到微服务:{}张",adbDevice.getSerial(),send++); logger.info("设备【{}】发送图片到微服务:{}张",adbDevice.getSerial(),send++);
SessionUtils.sendBinary(webSession, screenPicContent); SessionUtils.sendBinary(webSession, this.lastData);
logger.info("设备【{}】发送图片到微服务完成:{}张",adbDevice.getSerial(),send); logger.info("设备【{}】发送图片到微服务完成:{}张",adbDevice.getSerial(),send);
} else { } else {
logger.warn("推送到web端的session已经断开sessionId:{}",webSession.getId()); logger.warn("推送到web端的session已经断开sessionId:{}",webSession.getId());

View File

@ -32,6 +32,8 @@ public abstract class ImageScreenResponse extends Thread{
protected CatchParam catchParam; protected CatchParam catchParam;
protected byte[] lastData;
public void setCatchParam(CatchParam catchParam) { public void setCatchParam(CatchParam catchParam) {
this.catchParam = catchParam; this.catchParam = catchParam;
} }
@ -83,7 +85,17 @@ public abstract class ImageScreenResponse extends Thread{
Map<String, Object> messageMap = new HashMap<>(); Map<String, Object> messageMap = new HashMap<>();
messageMap.put(ResponseCmd.DeviceStatus.STATUS, ResponseCmd.DeviceStatus.CONNECTING); messageMap.put(ResponseCmd.DeviceStatus.STATUS, ResponseCmd.DeviceStatus.CONNECTING);
SessionUtils.sendMessageInitiative(session, ResponseCmd.DEVICE_STATUS, deviceId, messageMap, "设备掉线了"); SessionUtils.sendMessageInitiative(session, ResponseCmd.DEVICE_STATUS, deviceId, messageMap, "设备掉线了");
this.sendDeviceStatus = true; logger.info("发送设备【{}】最后一张图片到前端..............",deviceId);
if (null != this.lastData) {
Map<String, Object> result = new HashMap<>();
result.put(ResponseCmd.DeviceStatus.STATUS, ResponseCmd.DeviceStatus.CONNECTED);
SessionUtils.sendMessageInitiative(session, ResponseCmd.DEVICE_STATUS, deviceId, result, "设备已连接");
SessionUtils.sendBinary(session, this.lastData);
} else {
logger.info("发送设备【{}】最后一张图片是空,获取到了再发..............",deviceId);
this.sendDeviceStatus = true;
}
} }
public void setSendDeviceStatus(boolean sendDeviceStatus) { public void setSendDeviceStatus(boolean sendDeviceStatus) {