WebSocket
HTML5에서 제공하는 API로, 클라이언트와 서버 간에 양방향 통신을 할 수 있게 함
HTTP와 달리, WebSocket은 지속적인 연결을 유지하며 실시간 데이터 전송이 가능
const socket = new WebSocket('ws://localhost:8090/echo');
** ws://localhost:8090/echo경로에 WebSocket 연결을 시도
** 연결이 성공하면 클라이언트와 서버 간에 실시간 데이터를 송수신 가능
** WebSocket객체( socket )를 통해 이벤트 핸들러( onopen, onmessage, onclose ... )를 설정하여 연결 상태와 메시지를 처리할 수 있다.
| ws:// | /echo |
| WebSocket 프로토콜을 의미 | 서버의 특정 WebSocket 경로 |
| 이벤트 핸들러 | 설명 | 주요 사용 예 |
| onopen | WebSocket연결 성공 시 호출됨 | 초기화 작업 |
| onmessage | 서버로부터 메시지 받을때 호출됨 event.data: 수신된 메시지 데이터 |
수신된 데이터 처리 |
| onclose | WebSocket 연결 종료 시 호출됨 event.code: 연결 종료 코드 event.reason: 연결 종료 이유 event.wasClean: 연결이 정상적으로 종료되었는지 여부( boolean ) |
연결 종료 후 작업 처리 |
| onerror | WebSocket에서 에러가 발생했을 때 호출됨 | 오류 알림 및 디버깅 |
WebSocket객체의 ' 메서드 '와 ' 이벤트 핸들러 ' 는 다르다
| 이벤트 핸들러 | 메서드 | |
| 정의 | 특정 상황에서 자동으로 호출되는 함수 | 프로그래머가 명시적으로 호출 |
| 예 | onopen, onmessage, onclose, onerror | send(), close() |
| 역할 | WebSocket 상태와 이벤트를 처리 | 데이터 전송 및 연결 종료 |
| 자동 호출 여부 | WebSocket 이벤트에 의해 자동으로 호출됨 | 직접 호출해야 실행됨 |
'Programing Language > JavaScript' 카테고리의 다른 글
| 브라우저 렌더링 과정과 window.onload = () => { } , $(document).ready( ) (1) | 2025.01.21 |
|---|---|
| $(".loginBtn").on("click", function() { }); 코드가 작동하지 않는 이유 (0) | 2025.01.21 |
| setTimeout() (1) | 2023.05.17 |
| 선택자 document.getElementById( ) , $( ) (0) | 2023.05.16 |
| encodeURIComponent( ) , 이스케이핑 (0) | 2023.02.02 |