짧은 프로젝트

Springboot 배달 시스템 만들기 1(웹소켓 기본세팅)

디비드킴 2024. 1. 9. 15:39

웹소켓기술을 이용해서 간단하게 심플한 배달원 위치추적 시스템을 만들어보자

 

1.배달 웹소캣 핸들러 작성

@Service
@Slf4j
@RequiredArgsConstructor
public class DeliverPositionHandler extends TextWebSocketHandler {

    @Override//메세지가오는함수
    public void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {

    }


    @Override//연결이되면 자동으로 작동하는함수
    public void afterConnectionEstablished(WebSocketSession session) throws Exception {
        log.info("배달 웹소켓이 연결되었습니다");
    }



    @Override //연결이끊기면 자동으로 작동하는함수
    public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
        //권한에 따라
    }


}

2.웹소켓 설정

@Configuration
@RequiredArgsConstructor
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {

    private final DeliverPositionHandler deliverPositionHandler;

    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler((WebSocketHandler) deliverPositionHandler, "/ws/deliver").setAllowedOrigins("*");
    }

}

3.프론트 연결코드작성

    <script>
        // 웹소켓 생성
        const socket = new WebSocket("ws://localhost:8080/ws/deliver");

        // 커넥션이 제대로 생성되었을 때
        socket.onopen = function (e) {
            
        };
        // 데이터를 수신 받았을 때
        socket.onmessage = async function (e) {
         
        };
        // 에러가 발생했을 때
        socket.onerror = function (e) {
            console.log(e);
        };
    </script>

 

4.결과

성공

 

깃허브페이지

https://github.com/novb1492/deliver/tree/basic-setting

 

GitHub - novb1492/deliver

Contribute to novb1492/deliver development by creating an account on GitHub.

github.com