diff options
author | Vitaly Takmazov | 2016-06-28 15:25:08 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2016-06-28 15:25:08 +0300 |
commit | c4948c141a68433b4ba9eca167622816dcd10fa1 (patch) | |
tree | f8776814b304768e2b2db83403def7ce55a34b6a /src/main | |
parent | 2d89e7882c09be7cbe82a4e5df09c23ab106be20 (diff) |
fix session closing
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/com/juick/ws/WebsocketComponent.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/main/java/com/juick/ws/WebsocketComponent.java b/src/main/java/com/juick/ws/WebsocketComponent.java index 7399c298..8ccccb3b 100644 --- a/src/main/java/com/juick/ws/WebsocketComponent.java +++ b/src/main/java/com/juick/ws/WebsocketComponent.java @@ -103,9 +103,12 @@ public class WebsocketComponent extends TextWebSocketHandler { @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { synchronized (clients) { - clients.stream().filter(c -> c.session.getId().equals(session.getId())).forEach(c -> { - logger.info(String.format("session %s closed with status %s", c.clientName, status.getCode())); - clients.remove(c); + clients.removeIf(c -> { + if (c.session.equals(session)) { + logger.info(String.format("session from %s closed with status %d", c.clientName, status.getCode())); + return true; + } + return false; }); } |