질문과 답변

2026.09.21 15:36

웹소켓 채팅 설치후 문의

1. 설치는 잘 되었습니다
NODE 24버전이며 .env도 이상없이 잘 세팅하였고 
https://도메인/health 입력시 {"ok":true} 잘 나옵니다
하지만 2개의 브라우저에서 채팅 사용시 실시간보다는 2~3초 딜레이가 발생하는것 같아서 확인해보니 채팅화면 상단에 "보조 연결 · 주기적으로 확인 중" 이라고 표시됩니다
개발자콘솔에서 정상적으로 설치되어 웹소켓 에러는 없습니다

2. 보조연결은 ajax를 이용해서 채팅내용을 전달하는건가요?
  • 공유링크 복사
    미니홈 쪽지 구독하기
    구독하고 알림받기

    댓글목록

    profile_image
    리빌더미니홈 1:1 대화하기  15시간 전

    정상 연결은 아닌것같습니다.
    코드를 확인해서 추가회신 드리겠습니다.

    2026-09-21 15:42

    profile_image
    리빌더미니홈 1:1 대화하기  13시간 전

    1. 서버 실행과 웹소켓 연결은 별도로 확인해야 합니다!

    /health에서 {"ok":true}가 나오면 Node 서버가 실행 중이라는 의미입니다.
    브라우저의 웹소켓 인증과 실제 메시지 전달까지 정상이라는 의미는 아닙니다. 콘솔에 오류가 없어도 메시지 전달 경로에 문제가 있으면 보조연결로 전환될 수 있습니다.

    현재 수정 버전 (1.2.0) 에서는 /health 응답이 {"ok":true,"protocol":3} 으로 나옵니다.
    기존 응답만 나온다면 server 폴더도 최신 파일로 교체하고 Node 서버를 재시작해 주세요.

    이후 다음 항목을 확인해 주세요.

    - 관리자 설정의 자체 서버 주소와 비밀키가 서버 설정과 일치하는지
    - .env의 ALLOWED_ORIGINS가 실제 사이트 주소와 일치하는지
    - 프록시에서 WebSocket 연결을 허용하는지
    - 사이트 서버에서 소켓 서버의 /events로, 소켓 서버에서 사이트의 채팅 API로 HTTPS 요청이 가능한지

    관리자 설정의 "저장하고 연결 점검" 을 실행한 뒤, 두 브라우저에서 "연결됨" 표시와 메시지 수신을 확인해 주세요.
    현재 정보만으로 2~3초 지연의 원인을 특정하기는 어렵지만, "보조연결"은 정상적인 실시간 전달 상태가 아니라는 뜻입니다.

    2. 네. 보조연결은 AJAX 방식의 HTTP 요청으로 대화를 확인하는 대체 연결입니다.

    웹소켓을 사용할 수 없으면 메시지 전송도 HTTP 요청으로 처리하며,
    사이트 화면을 보고 있는 동안 10초 간격으로 새 대화를 확인 합니다. 따라서 정상 웹소켓 연결보다 수신이 늦을 수 있습니다.
    웹소켓 자체는 연결되어 있고 전달 경로에만 문제가 있는 경우에는 전송에 웹소켓을 계속 사용하면서 HTTP 조회로 수신을 보완할 수 있습니다.

    현재 자체 서버 방식은 정상 연결 시 "메시지 전송과 본문 수신에 웹소켓을 사용" 합니다.
    권한 확인과 DB 저장은 PHP에서 처리하며, 최초 대화 불러오기 · 이전 대화 조회 · 파일 업로드 등은 HTTP를 사용합니다.

    보조연결 중에도 자동 재접속을 시도하며,
    정상 연결과 전달이 확인되면 "연결됨" 으로 돌아옵니다.

    감사합니다.

    2026-09-21 17:59

    profile_image
    no_profile 민호민호미니홈 1:1 대화하기  12시간 전

    확인하느라 고생하셨습니다
    감사합니다

    새로 설치후 {"ok":true,"protocol":3} 라고 나옵니다
    이전과는 다르게 보조연결이 아닌 "연결됨"으로 표시됩니다
    정상 세팅됟듯 합니다
    다만 글을 쓰고 보내기 클릭하면 "알림 사이트의 채팅 API에 연결하지 못했습니다. 잠시 후 다시 시도해 주세요." 라고 표시됩니다
    이전에는 API 관련해서는  에러가 없었는데 이번에는 API 연결 못한다는 에러가 납니다

    2026-09-21 18:47

    profile_image
    리빌더미니홈 1:1 대화하기  12시간 전

    자체 서버의 Node > 사이트 PHP 채팅 API 구간에서 정상 응답을 받지 못한 상황입니다.
    현재 동작은 다음과 같습니다.
    브라우저 > 웹소켓 Node 서버 > 사이트 PHP API에서 권한 확인 · 저장

    "연결됨" 은 브라우저와 Node 서버의 연결 · 인증이 성공했다는 뜻이고, 보내기를 누른 뒤 해당 오류가 나오는 것은 다음 단계에서 실패했다는 의미입니다.
    코드상 다음 경우에 같은 문구가 표시됩니다.

    - Node 서버에서 사이트 주소로 접속하지 못함 : DNS · 방화벽 · SSL 인증서 문제 등
    - 사이트가 다른 주소로 리다이렉트함
    - API가 JSON 대신 차단 페이지 · 로그인 페이지 · PHP 오류 등을 반환함
    - API 응답이 20초를 초과함

    먼저 Node가 실행 중인 서버에서 아래 명령으로 확인하면 될것같습니다.
    사이트도메인은 소켓 서버가 아니라 채팅이 설치된 홈페이지 주소입니다.

    node -e "fetch('https://사이트도메인/rb/rb.mod/wschat/core/api.php',{redirect:'error',signal:AbortSignal.timeout(20000)}).then(async r=>console.log(r.status,await r.text())).catch(e=>console.error(e.message,e.cause))"

    이 명령은 메시지를 보내지 않는 접속 확인용입니다.

    - "POST 요청이 필요합니다." 라는 JSON 응답 : API까지 접속 가능
    - HTML이나 PHP 오류 출력 : 사이트 응답 문제 확인 필요
    - 인증서 · 접속 · 리다이렉트 오류 : 해당 서버 연결 설정 확인 필요

    이 결과를 알려주시면 원인을 더 좁힐 수 있을것같습니다.
    감사합니다.

    2026-09-21 18:51

    profile_image
    no_profile 민호민호미니홈 1:1 대화하기  12시간 전

    해결 되었습니다
    잘 작동합니다
    수고하셨습니다
    감사합니다

    2026-09-21 19:00

    profile_image
    리빌더미니홈 1:1 대화하기  12시간 전

    해결 되셨다니 다행입니다!
    감사합니다.

    2026-09-21 19:01

    profile_image
    no_profile 민호민호미니홈 1:1 대화하기  12시간 전

    npm install 실행시
    npm warn Unknown global config "--init.module". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
    위 경고는 문제가 안되겠죠?

    2026-09-21 18:57

    profile_image
    리빌더미니홈 1:1 대화하기  12시간 전

    네. 해당 경고만 출력되고 npm install이 정상 완료됐다면 채팅 실행을 막는 문제는 아닙니다.
    서버의 npm 전역 설정에 현재 npm이 인식하지 못하는 --init.module 항목이 있다는 뜻입니다.
    npm의 주요 버전을 올리면 허용되지 않을 수 있으니 해당 설정을 정리하라는 안내입니다.

    2026-09-21 19:02