package com.example.copykamanotes.config; import com.example.copykamanotes.utils.JwtUtil; import com.example.copykamanotes.websocket.MessageWebSocketHandler; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.config.annotation.EnableWebSocket; import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; import org.springframework.web.socket.server.standard.ServletServerContainerFactoryBean; @Configuration @EnableWebSocket public class WebSocketConfig { private final JwtUtil jwtUtil; private final ObjectMapper objectMapper; public WebSocketConfig(JwtUtil jwtUtil, ObjectMapper objectMapper) { this.jwtUtil = jwtUtil; this.objectMapper = objectMapper; } public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(messageWebSocketHandler(), "ws/message") .setAllowedOrigins("*"); } @Bean public MessageWebSocketHandler messageWebSocketHandler() { return new MessageWebSocketHandler(jwtUtil, objectMapper); } @Bean public ServletServerContainerFactoryBean createWebSocketContainer() { ServletServerContainerFactoryBean container = new ServletServerContainerFactoryBean(); container.setMaxTextMessageBufferSize(8192); container.setMaxBinaryMessageBufferSize(8192); return container; } }