인프런 커뮤니티 질문&답변

쿠마스님의 프로필 이미지
쿠마스

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

Socket.IO 사용해보기

io.use 질문드립니다.

작성

·

121

0

io.use를 통해 세션과 쿠키를 미들웨어 확장하여 연결해주었는데요, 클라이언트 측에서 접속하니 connetion 부분이 두번이 실행이 됩니다. 왜그럴까요?

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

혹시 브라우저가 여러 개 켜진 것은 아닌가요? 일단 대부분은 서버 껐다 켜보면 커넥션 다시 하나로 제대로 맺어집니다.

쿠마스님의 프로필 이미지
쿠마스
질문자

  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에 미들웨어를 넣는 갯수만큼 접속이 늘어나는듯 했어요, 일단은 쿠키파서를 빼서 하니깐 되더라구요 ㅠㅠ

 

쿠마스님의 프로필 이미지
쿠마스

작성한 질문수

질문하기