@RequiredArgsConstructor
public class ServerWebSocketHandler implements WebSocketHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(ServerWebSocketHandler.class);
private final SensorDataService sensorDataService;
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
LOGGER.info("connection opened in session with id {}", session.getId());
}
@Override
public void handleMessage(WebSocketSession session, WebSocketMessage> message) throws Exception {
LOGGER.info("message arrived");
sensorDataService.buffer(new SensorDataEntity(TextMessage.class.cast(message).getPayload()));
}
@Override
public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
LOGGER.error("error in session with id {}", session.getId());
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception {
LOGGER.info("connection closed in session with id {}", session.getId());
}
@Override
public boolean supportsPartialMessages() {
return false;
}
}