diff options
Diffstat (limited to 'juick-server/src/main/java')
-rw-r--r-- | juick-server/src/main/java/com/juick/server/WebsocketManager.java | 34 |
1 files changed, 5 insertions, 29 deletions
diff --git a/juick-server/src/main/java/com/juick/server/WebsocketManager.java b/juick-server/src/main/java/com/juick/server/WebsocketManager.java index fdee5065..bcb17bf1 100644 --- a/juick-server/src/main/java/com/juick/server/WebsocketManager.java +++ b/juick-server/src/main/java/com/juick/server/WebsocketManager.java @@ -18,7 +18,6 @@ package com.juick.server; import com.fasterxml.jackson.databind.ObjectMapper; -import com.juick.Message; import com.juick.User; import com.juick.server.helpers.AnonymousUser; import com.juick.server.util.HttpBadRequestException; @@ -26,7 +25,6 @@ import com.juick.server.util.HttpForbiddenException; import com.juick.server.util.HttpNotFoundException; import com.juick.service.MessagesService; import com.juick.service.UserService; -import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,7 +34,6 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.web.socket.CloseStatus; import org.springframework.web.socket.PingMessage; -import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.WebSocketSession; import org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator; import org.springframework.web.socket.handler.TextWebSocketHandler; @@ -46,6 +43,7 @@ import org.springframework.web.util.UriComponentsBuilder; import javax.inject.Inject; import java.io.IOException; import java.net.URI; +import java.time.Instant; import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -129,7 +127,7 @@ public class WebsocketManager extends TextWebSocketHandler { } @Override - public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { + public void afterConnectionClosed(WebSocketSession session, CloseStatus status) { synchronized (clients) { logger.debug("session closed with status {}: {}", status.getCode(), status.getReason()); clients.removeIf(c -> c.session.getId().equals(session.getId())); @@ -138,28 +136,6 @@ public class WebsocketManager extends TextWebSocketHandler { } - @Override - protected void handleTextMessage(WebSocketSession session, TextMessage message) { - if (StringUtils.defaultString(message.getPayload()).trim().isEmpty()) { - return; - } - clients.stream().filter(c -> c.session.equals(session)).findFirst().ifPresent( c -> { - if (c.visitor.getName().equals(serviceUser)) { - try { - Message draft = jsonMapper.readValue(message.asBytes(), Message.class); - if (draft.getUser() != null && (draft.getText() != null || draft.getAttachment() != null)) { - String attachmentFileName = draft.getAttachment() == null ? "" : draft.getAttachment().getUrl(); - commandsManager.processCommand(draft.getUser(), draft.getText(), URI.create(attachmentFileName)); - } - } catch (Exception e) { - throw new HttpBadRequestException(); - } - } else { - throw new HttpForbiddenException(); - } - }); - } - @Scheduled(fixedRate = 30000) public void ping() { clients.forEach(c -> { @@ -183,15 +159,15 @@ public class WebsocketManager extends TextWebSocketHandler { int MID; boolean allMessages; boolean allReplies; - long tsConnected; - long tsLastData; + Instant tsConnected; + Instant tsLastData; boolean legacy; public SocketSubscribed(WebSocketSession session, String clientName, User visitor, boolean legacy) { this.session = new ConcurrentWebSocketSessionDecorator(session, 60000, 65536); this.clientName = clientName; this.visitor = visitor; - tsConnected = tsLastData = System.currentTimeMillis(); + tsConnected = tsLastData = Instant.now(); this.legacy = legacy; } } |