移除多余的session

master
yineng.huang 2024-08-20 11:34:50 +08:00
parent 5f3a467afd
commit 40ba86aff5
1 changed files with 5 additions and 4 deletions

View File

@ -15,6 +15,7 @@ import javax.websocket.Session;
import java.io.DataInput;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class AndroidScreenResponseThread extends ImageScreenResponse {
@ -109,7 +110,9 @@ public class AndroidScreenResponseThread extends ImageScreenResponse {
}
//有后端会话则给后端推送屏幕图片
if (!CollectionUtils.isEmpty(webSessions)) {
for (Session webSession : webSessions) {
Iterator<Session> iterator = webSessions.iterator();
while (iterator.hasNext()) {
Session webSession = iterator.next();
if (webSession.isOpen()) {
if (sendDeviceStatus) {
Map<String, Object> result = new HashMap<>();
@ -117,12 +120,10 @@ public class AndroidScreenResponseThread extends ImageScreenResponse {
SessionUtils.sendMessageInitiative(webSession, ResponseCmd.DEVICE_STATUS, adbDevice.getSerial(), result, "设备连接失败");
sendDeviceStatus = false;
}
logger.info("设备【{}】发送图片到微服务:{}张",adbDevice.getSerial(),send++);
SessionUtils.sendBinary(webSession, this.lastData);
logger.info("设备【{}】发送图片到微服务完成:{}张",adbDevice.getSerial(),send);
} else {
logger.warn("推送到web端的session已经断开sessionId:{}",webSession.getId());
//todo:操作一下去掉webSessions里面的无效session
iterator.remove();
}
}
}