본문으로 건너뛰기

웹소켓 테스터

WebSocket Tester

웹소켓 연결을 열어 직접 작성한 프레임을 보내고 수신 내용을 시간과 함께 기록합니다.

브라우저에서 지정한 서버로 WebSocket을 열고, 입력한 내용을 보내고, 양방향 프레임을 시간과 함께 기록합니다. 연결은 브라우저가 직접 맺으므로 우리 서버를 거치지 않고, 내 컴퓨터의 개발 서버도 공개 서버와 똑같이 동작합니다.

🔒 브라우저 안에서만 처리websockettestrealtimedebug

브라우저가 직접 연결합니다. 주소도, 보내고 받는 내용도 우리 서버를 거치지 않습니다.

이 페이지가 https라서 ws://(비암호화)는 브라우저가 막습니다. 개발 서버는 로컬 http 환경에서 열거나 wss로 붙이세요.

쉼표로 구분. Sec-WebSocket-Protocol 헤더로 제안되고 서버가 하나를 고릅니다.

브라우저는 1000 또는 3000–4999만 보낼 수 있습니다(RFC 6455 §7.4).

대기

보내기

기록

수신 프레임은 ▼, 송신은 ▲. 시각은 첫 기록 기준 경과 시간입니다.

아직 아무것도 없습니다.

  • 브라우저의 WebSocket API는 ping/pong 프레임을 직접 보낼 수 없고, 커스텀 헤더도 붙일 수 없습니다. 인증이 필요하면 첫 메시지나 URL 쿼리, 또는 subprotocol로 토큰을 넘기는 것이 관례입니다.

사용 방법

  1. wss:// 주소를 넣습니다

    이 페이지가 https라서 브라우저가 평문 ws://를 혼합 콘텐츠로 막습니다. subprotocol을 함께 제안할 수 있고, 서버가 고른 것을 기록에 적어 줍니다.

  2. 프레임을 보냅니다

    올바른 JSON은 보내기 전에 한 줄로 정리해서, 들여쓰기된 메시지를 붙여 넣어도 클라이언트가 보내는 형태로 나갑니다. JSON이 아니면 입력한 그대로 나갑니다.

  3. 기록을 방향과 시간으로 읽습니다

    수신은 ▼, 송신은 ▲, 이벤트는 ●이고, 첫 기록 이후 경과 시간이 함께 찍힙니다. 답이 아예 없는 서버와 늦게 답한 서버를 구분하는 방법이 이것입니다.

  4. 필요하면 코드를 정해 닫습니다

    브라우저는 1000 또는 3000–4999만 보낼 수 있습니다(RFC 6455 §7.4). 애플리케이션이 정하는 코드는 그 범위에 둡니다. 돌아온 종료 코드는 말로 풀어서 보여 줍니다.

자주 묻는 질문

Authorization 헤더를 붙일 수 있나요?

브라우저에서는 안 됩니다. WebSocket API는 커스텀 헤더를 아예 허용하지 않습니다. 관례는 첫 메시지, URL 쿼리, 또는 subprotocol에 토큰을 넣는 것이고, 어느 쪽인지는 서버가 정합니다.

1006으로 닫혔는데 이유가 없습니다

1006은 종료 프레임 없이 연결이 끊겼다는 뜻입니다. 서버가 죽었거나, 중간 프록시가 타임아웃했거나, 핸드셰이크가 거부된 것입니다. 브라우저는 보안상 이유를 일부러 감추므로 답은 여기가 아니라 서버 로그에 있습니다.

ping 프레임을 보낼 수 있나요?

못 보냅니다. 브라우저가 ping에 자동으로 답하고, 페이지가 직접 보낼 방법은 주지 않습니다. 하트비트가 필요한 애플리케이션은 보통 메시지를 보내고 서버의 응답에 기댑니다.

주고받는 내용이 그쪽 서버를 지나나요?

지나지 않습니다. 브라우저가 직접 연결하므로 주소도 모든 프레임도 여러분과 그 서버 사이에만 있습니다. 덕분에 localhost 종단점도 여기서 되는데, 서버 쪽에서 도는 테스터는 결코 닿을 수 없는 곳입니다.

이 도구로 이어지는 것

다음 단계

이 도구의 결과를 그대로 받을 수 있는 도구들입니다.