플젝 구현 기술 정리
스톰
서버 <--------> 클라이언트
메세지 브로커 : 서버 단위
웹소켓은 : 클라이언트 단위
1 HTTP 커넥션 요청
2 메세지 브로커가 sub pub으로 요청하면 이게된다
STOMPS
sub/ 가상의 채팅방에 구독
pub/ 가상의 채팅방이 보냄
메세지가 pub으로 들어가면 메세지 브로커가 sub한 사람들에게 보내줌
메시지 서비스에서 저장해놨다가 로그를 불러옴
pause (어디까지 읽었어요)
이시간 이후로 들어온 메세지를 전부 뿌려주는것
들어오면 pause
- 채팅 안읽은것
모임에enter하면 스톰으로 가면서 enter메세지랑 puse메세지를 같이 생성
실제로 채팅방 입장했을때 퍼지메세지 삭제
각멤버마다 퍼지id를
채팅 개수 실시간으로 뜨는것/푸쉬알람이랑 같은 거 씀
SSE Emitter SSE이미터(에미터) :
Controller
이벤트소스를 URL
Server
addEventListener가 잡는다
메세지가 오거나 머지리쿼스트가 오면
Contoller에 보면은 send뭐 어쩌고 를 안쓰고 서비스에
notify/notifyMergeRequests
멤버아이디가 해당하는 이
레파지토리는 저걸 저장
notifitycaiton.js가 실행됨
모든페이지에서 열려
event소스가 sse이미터에 대응함 연동이되서 얘한테 직접적으로 가진 않는데 노티파이 id로 대응 하는 이미터를 찾게 되어있음 이벤트가 들어왔다 이벤트 타이이 뭔지 알려줘.
$(".modal iframe").attr('src', "http://www.wujuplay.site:8090/chat/mychat");
"http://www.wujuplay.site:8090/chat/mychat"
chatModal.js
jwt
TokenProvider
64 // JWT 토큰을 생성하는 메서드
AUTHORITIES_KEY :권한(유조인지 어드민인지)
41 // generateToken
타입만든거 빌두 ACCESS_TOKEN_EXPIRE_TIME 30분
리프레쉬 토큰도 같이 있음 -> 이걸 안한 이유가 일단 엑세스 토큰 만 하고 끝내려고, 엑세스 토큰은 그 값으로 가져가잖아 리프레쉬 토큰은 계속 바뀜 보안상 좋고 간편함. 엑세스에 리프레쉬 토큰을 추가 / 리프레쉬 토큰은 바로 받아서 쓸수 있는 토큰 /
TokenAuthenticationFilter.Class
여기서 리프레쉬 토큰을 사용 하려고
사용이 가능한지 아닌지를 체크하는
로그인할때만 진행되는 것~! 리프레쉬는 계쏙 돌아갈수도
TokenUtils
엑세스 토큰 있는지 없는지 check
SecurityFilterChain 인증없이 허용한 url
인증이 안됐을때는 익셉션 처리
씨큐리티 원래는 로그인,로그아웃,사인인 빼고는 다 빼줘야함
카카오
사업자 등록 안되어있으면 닉네임만 줌
Access Token과 Refresh Token
둘다주는데
엑세스는 짧게주고
엑세스가 없어져도 리프레쉬 토큰이 있으니까 ㄱㅊㄱㅊㄱㅊ