작성한 질문수
[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
Socket.IO 사용해보기
작성
·
121
0
io.use를 통해 세션과 쿠키를 미들웨어 확장하여 연결해주었는데요, 클라이언트 측에서 접속하니 connetion 부분이 두번이 실행이 됩니다. 왜그럴까요?
답변 1
혹시 브라우저가 여러 개 켜진 것은 아닌가요? 일단 대부분은 서버 껐다 켜보면 커넥션 다시 하나로 제대로 맺어집니다.
io.use((socket, next) => {
session(socket.request, socket.request.res, next);
cookieParser(process.env.COOKIE_SECRET)(socket.request, socket.request.res, next);
});
이렇게 했는데, 둘중에 하나를 지우면 하나만 접속되고 둘다지우면 접속자체가 안되네요... ㅠㅠ
혹시 socket.io 4버전이신가요? 그러면 사용방법이 바뀌었습니다.
2버전입니다 ㅠㅠ 왜그런지 모르겠네요.
session은 제가 app.js에서 만든 sessionMiddleware 객체가 맞나요?
넵 똑같이 보고 만들었습니다.
소스코드 링크입니다.
https://github.com/hwansu-k/clean-chat/tree/feature/socket
cookieParser가 원인이었나요?
cookieParser를 추가하면 접속이 두번되더라구요, io.use에 미들웨어를 넣는 갯수만큼 접속이 늘어나는듯 했어요, 일단은 쿠키파서를 빼서 하니깐 되더라구요 ㅠㅠ
io.use((socket, next) => {
session(socket.request, socket.request.res, next);
cookieParser(process.env.COOKIE_SECRET)(socket.request, socket.request.res, next);
});
이렇게 했는데, 둘중에 하나를 지우면 하나만 접속되고 둘다지우면 접속자체가 안되네요... ㅠㅠ