• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 socket.io 클라이언트에서 접속한 유저 특정

socket.io 클라이언트에서 접속한 유저 특정

5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • #68637

    강현철
    참가자
    안녕하세요. 매번 좋은 강의에 감사드립니다.
    
    socket.io 를 사용해서 
    
    1. 클라이언트에서 회원이 글을 등록하면 하면
    
    2. 관리자에게 새글이 등록 되었다고 알림이 가고
    
    3. 관리자가 등록된 글을 승인 처리하면
    
    4. 회원에게 등록한 글이 승인처리 되었다고 알림이 감
    
    위와 같은 시스템을 만들고 있습니다. 
    현재 3번까지는 완성을 하였는데 마지막 4번에서 좀 막힙니다.
    
    막히는 이유는 
    
    글이 등록됨과 동시에 바로 승인 처리가 되는게 아니라 일정시간 이후에 처리가 되므로 
    그 사이에 유저가 새로고침이나 페이지를 이동해 버리면 socket.id 가 변경이 되어버려
    해당 유저를 특정할 수 없게 되어버립니다.
    
    글을 등록할 때 유저의 아이디를 서버로 전송은 했으나 이걸 어떻게 활용을 해야할지
    조금 어렵습니다. 하루정도 stack overflow랑 git hub쪽을 검색하였으나 딱히 뾰족한 방법을 찾지 못했습니다.
    
    io.to(socket.id).emit 에서 socket.id 대신에 클라이언트의 유저를 특정할 수 있는 방법을 좀 알려주십시요 선생님
    장황하고 긴 질문 읽어주셔서 감사합니다.
    #68684

    codingapple
    키 마스터
    서버에 뭐 보낼때 현재유저 아이디같은걸 같이보내서 db에 저장해두면 될수 있을듯요
    #68694

    강현철
    참가자
    네 선생님 현재 서버로 보낼 때 유저의 아이디는 같이 보내서 socket.userId로 명시적으로 저장을 하는데 이걸 어떻게 써먹어야 하는지를 잘 모르겠어요.
    
    어차피 소켓이 끊어졌다가 다시 연결이 되면 socket.id 가 바뀌고 또한 socket의 내용 자체가 바뀌어버리니 소켓 통신에서 말씀주신 것 처럼 db에 저장해
    
    놓은 아이디를 특정해서 통신할 수 있는 방법이 따로 없을까요?
    #68739

    codingapple
    키 마스터
    유저가 페이지 접속하면 본인 _id로 이름지은 room같은데 접속하도록 하고 
    서버도 그 _id로 된 room에 메세지 보내면 될수도요
    #68745

    강현철
    참가자
    답변 감사합니다. 말씀 주신 내용으로 생각 해보겠습니다.
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠