작성
·
70
0
강의 설명중
1 번 방법에서
누가 서버에 커넥션을 맺고 있고 subscribe 하는지 서버에 메모리를 만들어서
관리하는 로직을 사용한다고 하셨는데
이전에 강의에서 배운내용에 따르면
스프링과 stomp 는 기본적으로 세션관리를 내부적으로 처리한다고 하셔서
즉 저희가 직접 접근을 하지못하는데 이러면
이벤트 리스너로 따로 sessions라는 자료구조를 만든 것을 활용해서
코드를 작성해야 하잖아요 ?
그리고 세션은 랜덤으로 스프링에서 생성하는데
이러면 세션이 몇개인지 카운트 및 각각 세션id가 부여되긴하는데
그게 어떤 사용자인지 구분이 안되기에
StompHandler에서 connect 맺을때
검증 후에 추가적으로
이메일정보를
String email = claims.getSubject();
accessor.getSessionAttributes().put("email", email);
로 설정해서
이벤트 리스너에 넘겨서 세션을 저장하는 식으로 생각했는데 맞을까요 ?
이후 서버에서 처리할때 subscribe하면서 , 동시에 누가 서버에 커넥션을 맺고있는지 아닌지 여부를 파악하는
(다소 복잡한) 로직을 작성해서 처리할 수 있다 이게 맞는 흐름일까요 ?
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. ckstj8027님.
웹소켓과 STOMP를 사용하여 서버에서의 세션 관리를 다루는 방법에 대해 깊이 있는 질문을 주셨네요. 강의에서 설명된 개념을 바탕으로 현재 이해하신 부분을 강화할 수 있도록 몇 가지 포인트를 정리해 드리겠습니다.
세션 관리:
StompHandler
에서 사용자 이메일 정보를 세션에 저장하는 방법은 적절합니다. 이렇게 함으로써 누가 어떤 세션인지 파악할 수 있고, 세션의 상태를 유지할 수 있습니다.이벤트 리스너 및 세션 정보 관리:
구독(subscribe) 및 세션 상태 관리:
이와 관련된 정보를 더 알아보시려면 아래의 유사한 질문 링크를 참고해 보세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.