해결된 질문
작성
·
744
0
socket.request.session에서는 color에 접근할 수 없기때문에
app.js에서 sessionMiddleware를 따로 분리하여 socket.js에 넘겨주어
socket.request.session에서 color 속성에 접근할수 있게 했는데
"Cannot read property 'color' of undefined" 오류가 발생하는네요 원인을 모르겠습니다
제가 코드를 잘못작성한것 같아서 github 코드를 참고하여 수정해봤는데도 계속 이런 현상이 나타나네요
콘솔로 socket.request.session을 찍어보는데 아예 undefined가 출력되는걸 봐서 socket.request.session에
request.session이 전달되지 않는것 같습니다
https://socket.io/docs/v3/faq/index.html
혹시 express-session에 접근할 수 있는 다른 방법이 있나 공식문서를 참고해봤는데 강의내용과 다르지 않더라구요
더 찾아본 결과 express-socket.io-session 라이브러리가 존재하는걸 확인했는데 이걸 사용해야 하나 고민입니다
답변 6
4
io.use 부분을 다음으로 대체하시면 됩니다.
const wrap = middleware => (socket, next) => middleware(socket.request, {}, next);
chat.use(wrap(cookieParser(process.env.COOKIE_SECRET)));
chat.use(wrap(sessionMiddleware));
0
0
0
0
0