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

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

View File

@ -32,6 +32,8 @@ public abstract class ImageScreenResponse extends Thread{
protected CatchParam catchParam;
protected byte[] lastData;
public void setCatchParam(CatchParam catchParam) {
this.catchParam = catchParam;
}
@ -83,7 +85,17 @@ public abstract class ImageScreenResponse extends Thread{
Map<String, Object> messageMap = new HashMap<>();
messageMap.put(ResponseCmd.DeviceStatus.STATUS, ResponseCmd.DeviceStatus.CONNECTING);
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) {