무엇을 도와드릴까요?

문의 내용을 간단히 알려 주세요. 이메일로 답변드릴게요.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
홈으로

전송: WebSocket, HTTP 대체 연결과 재연결

브라우저 위젯과 채팅 서버의 통신: 주소, rc.v1 하위 프로토콜, 프레임 형식, 오류·종료 코드, 제한, seq와 중복 제거 재연결, Server-Sent Events·롱 폴링 HTTP 대체 연결.

이 페이지는 브라우저 위젯과 채팅 서버 사이의 동작을 설명합니다. 문제 해결(개발자 도구의 네트워크 탭), 프록시·방화벽 규칙과 Content Security Policy에 필요합니다.

중요: 통신 프로토콜은 당사 위젯과 당사 서버 사이의 인터페이스입니다. 프로토콜을 직접 사용하는 자체 클라이언트는 공식 지원하지 않으며 버전 1 안에서 필드가 확장될 수 있습니다. 자체 인터페이스에는 JavaScript API, 서버 연결에는 웹훅과 서버 API를 사용합니다.

주소

위젯이 WebSocket 주소를 찾는 방식:

  1. 로더 태그의 data-rc-ws-url, window.ReactiveChatSettings.wsUrl, ReactiveChat('boot', { wsUrl })가 설정되어 있으면 해당 값을 사용합니다.
  2. 그 외에는 loader.js 위치에서 도출합니다. wss://ws. + 도메인의 마지막 두 레이블 + /rc_wss/입니다. cdn.reactive.chat에서 도출한 주소: wss://ws.reactive.chat/rc_wss/.

이로 인해 두 가지 주의점이 있습니다.

WebSocket 경로는 쿼리 매개변수를 평가하지 않습니다.

연결 설정

프레임 형식

양방향의 모든 메시지는 다음 형식입니다.

{ "v": 1, "t": "msg", "id": "01JAB3C4D5E6F7G8H9JKMNPQRS", "ts": 1792500000000, "d": { } }

알 수 없는 유형과 필드는 조용히 무시하므로 이전 위젯과 새 서버의 호환성을 유지합니다.

메시지 유형 개요

위젯에서 서버로:

서버에서 위젯으로:

오류 코드

오류는 t: "error" 프레임으로 오며 d.code, 개발자용 영어 d.message, d.retry(no, immediate, backoff, after_reinit), 필요시 d.retry_after_ms, d.detail이 있습니다. 목록은 고정되어 있으며 알 수 없는 코드는 internal처럼 처리합니다.

종료 코드

연결별 제한

서버가 init_ok.limits와 init_ok.features로 실제 적용값을 보냅니다.

재연결, 순서와 중복

HTTP 대체 연결

네트워크가 WebSocket을 통과시키지 않으면 같은 프레임과 제한으로 일반 HTTPS 요청을 사용합니다. 위젯만 사용하며 상담원 화면은 항상 WebSocket입니다. 편집자용 간단한 안내는 HTTP 대체 연결에 있습니다.

적용 조건:

브라우저에 fetch가 없으면 대체 연결도 없습니다. 기존 WebSocket이 끊기면 WebSocket으로 다시 연결합니다. 대체 연결 후 페이지마다 한 번 WebSocket이 이제 통과하는지 조용히 확인합니다. 성공하면 rc_http를 삭제하고 다음 페이지에서 WebSocket을 사용합니다.

요청(https://ws.reactive.chat/rc_wss/h/ 아래):

먼저 SSE를 시도하며 5초 안에 첫 프레임이 없으면(예: 프록시 버퍼링) 롱 폴링으로 전환합니다. 404(unbekannt), 403, 413, 429 같은 오류는 연결 끊김으로 처리하고 대기 후 재시도합니다. 요청 없이 60초가 지나면 서버가 닫습니다. CORS의 Access-Control-Allow-Origin은 인증 정보 없이 출처를 반영합니다. 출처 검사는 WebSocket처럼 init에서 수행합니다.

운영자 측 요구 사항:

브라우저 저장: 개인정보 없이 HTTPS 연결 시각만 sessionStorage의 rc_http에 저장합니다.

활성 경로 확인

개발자 도구의 네트워크 탭:

다음: 제한과 할당량 · 문제 해결

최종 업데이트: