Skip to content

Commit fe6567f

Browse files
author
gy2006
committed
fix session is missing if token invalid
1 parent 2bb3823 commit fe6567f

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

core/src/main/java/com/flowci/core/agent/manager/AgentEventManager.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,15 @@ public void afterConnectionClosed(WebSocketSession session, CloseStatus status)
120120
agentSessionStore.remove(token, session);
121121
}
122122

123+
private <T> void writeMessage(WebSocketSession session, ResponseMessage<T> msg) {
124+
try {
125+
byte[] bytes = objectMapper.writeValueAsBytes(msg);
126+
session.sendMessage(new BinaryMessage(bytes));
127+
} catch (IOException e) {
128+
log.warn(e);
129+
}
130+
}
131+
123132
private void onConnected(WebSocketSession session, String token, byte[] body) {
124133
try {
125134
AgentInit init = objectMapper.readValue(body, AgentInit.class);
@@ -134,7 +143,7 @@ private void onConnected(WebSocketSession session, String token, byte[] body) {
134143
log.debug("Agent {} is connected with status {}", token, init.getStatus());
135144
} catch (Exception e) {
136145
log.warn(e);
137-
writeMessage(token, new ResponseMessage<Void>(StatusCode.FATAL, e.getMessage(), null));
146+
writeMessage(session, new ResponseMessage<Void>(StatusCode.FATAL, e.getMessage(), null));
138147
}
139148
}
140149

core/src/main/java/com/flowci/core/agent/service/AgentServiceImpl.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -354,10 +354,13 @@ public void onConnected(OnConnectedEvent event) {
354354

355355
@EventListener
356356
public void onDisconnected(OnDisconnectedEvent event) {
357-
Agent target = getByToken(event.getToken());
357+
try {
358+
Agent target = getByToken(event.getToken());
359+
update(target, OFFLINE);
360+
syncLockNode(target, false);
361+
} catch (NotFoundException ignore) {
358362

359-
update(target, OFFLINE);
360-
syncLockNode(target, false);
363+
}
361364
}
362365

363366
@EventListener

0 commit comments

Comments
 (0)