Project

웹 소켓 구현 과정

haedal-uni 2022. 3. 24. 02:53
728x90

참고한 블로그 >> [ WebSocket으로 실시간 채팅 구현하기.(springboot) ]

 

 

 

 

Handshake failed due to invalid Upgrade header: null

 

알고보니 /websocket으로 입력하는게 아니라 /chat으로 입력하는 것이었다.ㅎ

 

 

 

 

위와 같이 test 해보다가 새로고침을 했더니 아래와 같은 에러가 발생했다.

 

 

The WebSocket session [0] has been closed and no method (apart from close()) 

may be called on a closed session

구글링 해보니 아래와 같은 코드가 적혀있길래 가져와서 OnClose 부분을 사용했다.

( 연결이 끊어졌을 때 )

@OnMessage
public String onMessage(String message, Session session) throws DeploymentException, IOException {
    switch (message) {
        case "quit":
            //session.close(new CloseReason(CloseCodes.NORMAL_CLOSURE, "Game ended"));
            message = "you" + message;
            break;
    }
    return message;
}

@OnClose
public void onClose(Session session, CloseReason closeReason) {
    logger.info(String.format("Session %s closed because of %s", session.getId(), closeReason));
}

https://stackoverflow.com/questions/26558373/how-to-close-java-ee-websocket-connection-properly

 

 

 

 

채팅 사용자 구분이 지금은 내가 아니면 무조건 관리자로 되어있는데

로그인 한 닉네임을 받아서 변경하려고 한다. 

참고할 블로그가 있어서 그 부분을 보고 하면 될 것 같다. (단체 채팅 포함)

[ WebSocket을 사용한 채팅프로그램(1) ]

 

 

 

그리고 코드를 조금씩 바꾸고 있는데 코드를 가져오는 과정에서 

블로그에 생략 된 코드나 내가 원하는 방향으로 고치기 위해서 이것 저것 바꾸고 있는데

참고하고 있는 블로그 글은 아래와 같다.

[ 스프링 Spring + 웹소켓 WebSocket 채팅 초간단 구현 ]

 

 

 

아직 뭐가 뭔지 잘 몰라서 코드를 뜯어보고 있는데 그래도 진행이 되고 있는 것 같아서 뿌듯하다. 😁

 

 

 

 

 

아래는 뻘짓하다가 에러를 발견해서 수정했었는데 알고보니 다른 에러 때문에 생긴 오류라서

안고쳐도 되었다. 😂

 

 

When allowCredentials is true, allowedOrigins cannot contain the special value "*" 

since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a set of origins, list them explicitly or consider using 

"allowedOriginPatterns" instead.

registry.addEndpoint("/").setAllowedOrigins("*").withSockJS();

⬇️ 아래 코드로 변경

registry.addEndpoint("/").setAllowedOriginPatterns("*").withSockJS();

 

 

 

 

 

 

 

728x90

'Project' 카테고리의 다른 글

3차 프로젝트 gif  (0) 2022.03.28
프로젝트 관련 정리글 링크 첨부  (0) 2022.03.27
페이징 코드 정리  (0) 2022.03.23
3차 프로젝트_KPT 회고  (0) 2021.12.13
3차 프로젝트_기획안 수정  (0) 2021.11.22