WebSocket 테스터 / 클라이언트

어떤 ws:// 또는 wss:// 엔드포인트에도 연결하고, 선택적 서브프로토콜을 선언하고, 텍스트나 JSON 메시지를 보내고 전체 수명 주기 로그를 지켜보세요. ready-state 전환, 닫기 코드와 이유, 그리고 방향·시간·페이로드가 있는 모든 메시지. 모든 것이 네이티브 WebSocket API로 브라우저 안에서 실행되며 서버를 경유하지 않습니다. 일반 HTTP API에는 REST API 클라이언트 / 테스터를, API 도구 전체를 보세요.
닫힘 연결 시 환영 JSON 전송
메시지 로그 0개 이벤트
아직 없습니다. 서버에 연결하여 시작하세요.
알아 둘 브라우저 WebSocket 한계: 요청 헤더는 사용자 정의할 수 없습니다(쿠키와 위의 Sec-WebSocket-Protocol 서브프로토콜만 전송됨). 핸드셰이크는 CORS의 대상이 아니지만 페이지의 Content-Security-Policy connect-src가 막을 수 있습니다. 보안(https) 페이지는 wss://만 열 수 있습니다. JavaScript는 프로토콜 수준 ping 프레임을 보낼 수 없습니다(브라우저가 서버 ping에 자동 응답 — 하트비트를 흉내 내려면 {"type":"ping"} 같은 앱 수준 메시지를 쓰세요). 자체 서명 인증서는 신뢰되지 않습니다. 로컬 테스트 권장: 자신의 서버를 실행하거나 wss://ws.postman-echo.com/raw, wss://echo.websocket.org 같은 공개 에코를 사용하세요.
WebSocket 설명
WebSocket은 브라우저와 서버 사이의 양방향 지속 메시지 채널입니다. HTTP와 달리 하나의 연결 위에서 메시지가 양방향으로 이동할 수 있습니다.
ws:// vs wss://—ws://은(는) 암호화되지 않았습니다(http://); wss://은(는) 암호화되어 있습니다(https://처럼). 이 페이지가 HTTPS로 제공되면 브라우저는 wss:// 연결만 허용합니다. 로컬 파일(file://)에서는 두 방식 모두 허용되지만, echo.websocket.org를 포함한 많은 공개 에코 서버는 wss://.
서브프로토콜 — 선택적 쉼표 구분 목록은 Sec-WebSocket-Protocol 핸드셰이크 헤더에 대응됩니다. 서버가 그중 하나를 지원해야 하며, 그렇지 않으면 브라우저가 연결을 거부합니다.
연결이 끝났는데 "메시지 보내기" 상자가 안 나타나는 이유는? 보내기 폼은 상태가 열림이 될 때만 나타납니다. 서버가 핸드셰이크를 끊으면 오류 이벤트에 이어 닫힘 코드 1006(비정상 종료 — 닫기 프레임 없음)이 보입니다. 전형적 원인: wss://만 받는 서버에 ws://를 쓰기, 잘못된 호스트/포트, 서브프로토콜 불일치, 서버 오프라인.
볼 수 있는 닫기 코드 — 1000 정상; 1001 브라우저 탭 닫힘; 1006 비정상/핸드셰이크 실패; 1009 메시지 과대; 1011 서버 오류. 로그는 코드와 짧은 이유를 자동으로 보여 줍니다.
실패한 연결 문제 해결: 먼저 방식을 wss://로 바꾸고, 호스트에 도달 가능한지 확인하고, 필요 없는 서브프로토콜을 지우고, 브라우저 콘솔에서 TLS나 혼합 콘텐츠 오류를 확인하세요.