ws
ws 모듈은 JSH 애플리케이션에서 사용할 수 있는 WebSocket 클라이언트를 제공합니다.
Go 네이티브 WebSocket client 위에 구현된 WebSocket 클래스 하나를 노출합니다.
일반적으로 아래처럼 사용합니다.
const { WebSocket } = require('ws');WebSocket
WebSocket 클라이언트 연결을 생성합니다.
사용 형식
new WebSocket(url)매개변수
urlString:ws://host:port/path,wss://host:port/path같은 WebSocket 서버 주소
url이 없거나 문자열이 아니면 constructor는 TypeError를 발생시킵니다.
속성
| 속성 | 타입 | 설명 |
|---|---|---|
url | String | constructor에 전달한 원래 WebSocket URL |
readyState | Number | 현재 연결 상태 |
readyState 값
WebSocket.CONNECTING=0WebSocket.OPEN=1WebSocket.CLOSING=2WebSocket.CLOSED=3
메시지 타입 상수
WebSocket.TextMessage=1WebSocket.BinaryMessage=2
send()
서버로 메시지를 전송합니다.
사용 형식
ws.send(data)매개변수
dataString: 전송할 텍스트 메시지
소켓이 아직 열려 있지 않으면 error 이벤트가 발생합니다.
사용 예시
| |
close()
현재 연결을 종료합니다.
사용 형식
ws.close()close()를 호출하면 소켓은 CLOSING을 거쳐 CLOSED로 전환되고 close 이벤트를 emit합니다.
이벤트
WebSocket은 EventEmitter를 상속하므로 on(), addListener() 같은 일반적인 이벤트 리스너 패턴을 사용할 수 있습니다.
open
클라이언트 연결이 성공한 뒤 발생합니다.
ws.on('open', () => {
console.println('connected');
});close
연결이 종료되면 발생합니다.
ws.on('close', () => {
console.println('closed');
});message
서버에서 메시지가 도착하면 발생합니다.
callback은 다음 필드를 가진 event 비슷한 객체를 받습니다.
| 필드 | 타입 | 설명 |
|---|---|---|
type | Number | WebSocket.TextMessage, WebSocket.BinaryMessage 같은 메시지 타입 |
data | String 또는 byte data | 메시지 payload. 텍스트 메시지는 문자열로 노출됩니다. |
| |
error
연결 또는 전송 작업이 실패하면 발생합니다.
ws.on('error', (err) => {
console.println(err.message);
});사용 예시
| |
동작 참고
- 이 모듈은 WebSocket 클라이언트만 제공합니다. 서버 측 upgrade 처리는 포함하지 않습니다.
- 연결 시작은 constructor 내부에서 비동기적으로 진행됩니다.
- 연결 실패는
error이벤트로 보고됩니다. - 수신 메시지는 text 또는 binary일 수 있지만, JavaScript의
send()메서드는 텍스트 메시지 용도로 사용하는 것이 안전합니다.
최근 업데이트