• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

io.use 질문드립니다.

22.01.25 22:18 작성 조회수 95

0

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

답변 1

답변을 작성해보세요.

0

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

쿠마스님의 프로필

쿠마스

질문자

2022.01.26

  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버전이신가요? 그러면 사용방법이 바뀌었습니다.

쿠마스님의 프로필

쿠마스

질문자

2022.01.26

2버전입니다 ㅠㅠ 왜그런지 모르겠네요.

session은 제가 app.js에서 만든 sessionMiddleware 객체가 맞나요?

 

쿠마스님의 프로필

쿠마스

질문자

2022.01.26

넵 똑같이 보고 만들었습니다.

소스코드 링크입니다.

https://github.com/hwansu-k/clean-chat/tree/feature/socket

cookieParser가 원인이었나요?

쿠마스님의 프로필

쿠마스

질문자

2022.01.26

cookieParser를 추가하면 접속이 두번되더라구요, io.use에 미들웨어를 넣는 갯수만큼 접속이 늘어나는듯 했어요, 일단은 쿠키파서를 빼서 하니깐 되더라구요 ㅠㅠ