-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
소켓 연결관련 질문입니다.
21.08.31 22:12 작성 조회수 1.29k
1
답변을 작성해보세요.
0
윤상석
지식공유자2021.09.01
새로고침을 하는 순간 세션이 닫히기 때문에 소켓 연결은 끊깁니다.
막을 방법은 클라이언트 단에서 새로고침 시에 경고(alert)창을 띄어주거나 방지하는 방법이 있습니다.
구글에 "브라우저 새로고침 방지 javascript 코드"를 검색하시면 f5 버튼 막기 등 다양한 경로의 새로고침을 클라이언트 단에서 막을 수 있는 코드가 있습니다. 참고하시면 좋을 것 같습니다. :)
이 코드를 <script>code</script>로 삽입해 주시면 됩니다.
redis 관련 프로젝트는 socket.io-redis-adapter 패키지 추천드립니다.
https://github.com/socketio/socket.io-redis-adapter
관련해서 데모를 찾아 보았는데요. https://github.com/phatvo21/nest-chat-realtime
목적에 맞는 코드와 유사할 것 같습니다!
IJILKJ
질문자2021.09.02
우선 이렇게 예시 코드까지 갖고와주셔서.. 정말 감사합니다.
그런데 제가 생각한건 그냥 mysql이나 mongodb를 nestjs에 연결하듯
평범한 redis db를 추가로 연결한다음에 연결된 redis와 websocket으로 뭔가를 해보려했던 것인데 socket.io-redis-adapter는 뭔가 더 고차원적인거같던데.. 이게 어떤 기능들을 하는건지 알 수 있을가요?
제가 다시 구글링을 해보니까 nestjs-redis가 있고 https://www.npmjs.com/package/nestjs-redis
redis-cache가 있던데 둘중에 어떤걸 써야되는지를 모르겠네요;
윤상석
지식공유자2021.09.02
음 그렇다면 redis-cache도 가능하긴 하지만 아무래도 더 저수준 인터페이스라 바로 간단하게 사용하실거면 nestjs-redis를 사용하는 것이 좋을 것 같습니다. 제가 nestjs-redis를 깊게 사용해보진 않아서 pub/sub 인터페이스가 좋은지는 잘 모르겠네요 ㅠㅠ 처음부터 자유롭게 수동으로 개발하실 생각이시라면 redis-cache도 괜찮은 것 같습니다!
답변 1