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

home2 게시판 Next.js 게시판 Next.js 웹 소켓 불가 문제

Next.js 웹 소켓 불가 문제

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #100231
    부모님 가게에 쓸 POS 사이트를 만들고 있습니다. 
    Next.js와 MongoDB를 활용해 만들고 있는데, 
    선생님 말마따나 기본적인 게시판 만드는 과정과 거의 동일해 어지간한 기능은 다 구현했습니다. 
    그런데 가장 핵심적인 실시간 통신 부분에서 막히고 있네요.
    1. 클라이언트 측에서 주문을 접수하면 서버에게 POST 요청 날림
    
    2. 서버는 그에 맞게 DB에 주문 내역을 기록함
    
    3. DB에 성공적으로 기록이 되면 서버는 클라이언트 측에 
    실시간으로 주문 내역을 업데이트 해줘야 함. (새로고침없이 즉시 업데이트)
    
    4. 또한 영수증 프린터가 달린 주방(회원 계정 중 auth 명을 printer로 지정해둠)에서는 
    주문 내역이 업데이트되면 바로 영수증이 인쇄되어야 함.
    주방과 카운터에서는 주문 내역 화면을 계속해서 띄우기만 해놓고 
    알아서 업데이트가 되어야 하는 상황이라 
    수동으로 새로고침을 하는 게 아니라 실시간으로 업데이트가 되어야 합니다.
    그렇게 하려면 Node 강의에서 배운 Server Sent Event를 활용하거나
    Web Socket을 이용하는 방법을 통해 구현을 해야 할 것 같은데, 
    Next.js의 API 코드는 서버리스 함수라 무한한 실행이 불가능해 
    직접적으로 Web Socket을 사용하지는 못한다고 되어있군요..
    Ably나 Railway와 같은 외부 서비스를 통해 
    Web Socket을 지원하는 방법이 있는 것 같은데 
    외부 서비스 말고는 방법이 없는지 궁금합니다.
    
    Node 서버를 한 대 더 만들라는 얘기도 있던데 
    그러려면 기존 Next.js 서버와 웹 소켓용 서버를 어떻게 연결 시켜야 할지 감이 안 잡히네요. 
    뭔가 쉽게 해결할 수 있는 방법이 있을 것 같은데...
    저 과정이 어찌저찌 된다면 아래처럼 로직이 되어야 할 거 같은데 아래 과정이 맞는지도 궁금합니다.
    1. 클라이언트와 서버간의 웹 소켓 연결 완료
    2. MongoDB측에 새로운 주문 내역이 들어오거나 기존 주문 내역이 수정되는 상황 발생
    3. MongoDB의 Change Stream 기능을 통해 서버 측에 전달
    4. 서버는 즉시 연결되어있는 클라이언트에 업데이트 된 내용을 갱신시킴
    
    #100250

    codingapple
    키 마스터
    https://www.reddit.com/r/nextjs/comments/13ucqt8/no_serversent_events_in_nextjs_13/
    해결책은 몇개있는거같은데 완벽하진않은듯요
    귀찮으면 react query같은거 써서 1초마다 계속 서버로 ajax요청 날리면 됩니다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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