ObjectWebSocket메시지
WebSocketMessage
예WebSocket캡슐화하는 프로토콜의 메시지 유형WebSocket전송 프로토콜의 다양한 메시지의 데이터 형식과 처리 방법을 사용하여WebSocket클라이언트와 서버가 통신합니다.
클래스의 생성자는 세 가지 선택적 값이 있는 WebSocketMessage
지정된 메시지 유형 매개변수를 지원합니다 .type
ws.TEXT
: 텍스트 유형의 메시지를 나타내며 내용은 문자열입니다.ws.BINARY
: 바이너리 형태의 메시지를 나타내며, 내용은 바이너리 데이터이다.
또한 WebSocketMessage.masked
속성을 수정하여 마스크 적용 여부를 지정할 수도 있고, WebSocketMessage.compress
속성을 사용하여 압축이 필요한지 여부도 지정할 수 있습니다.
다음 코드는 websocket 서버의 예입니다. 클라이언트가 연결되면 서버는 수신된 메시지를 클라이언트에 다시 표시합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18var ws = require('ws');
var http = require('http');
var svr = new http.Server(8080, {
'/websocket': ws.upgrade((conn, req) => {
// emit message event
conn.onmessage = e => {
if (e.data.type == ws.TEXT) {
console.log(`接收到客户端发来的消息 ${e.data}`);
conn.send(e.data);
} else {
console.error(`收到未知类型消息 ${e.data.type}`);
}
}
conn.onclose = e => console.log('离开了一个客户端');
})
});
svr.start();
이 프로그램에서는 웹소켓 지원 모듈과 내장된http모듈을 만든 후 생성됨http서비스 객체를 호출하고 처리할 요청 경로를 지정합니다.ws.upgrade해당 경로의 요청을 웹소켓 연결로 업그레이드하는 기능입니다. 웹소켓 연결을 생성한 후 서버는 자동으로ws.Socket개체이며 클라이언트가 연결하고, 메시지를 받고, 이벤트를 닫을 때 처리할 onopen, onmessage, onclose 및 기타 API를 제공합니다. 메시지를 수신하면 서버는 메시지 유형을 결정하고, 텍스트 유형인 경우 수신된 메시지를 다시 에코합니다. 위는 간단한 웹소켓 서버 처리 흐름이며, 실제 필요에 따라 수정될 수 있습니다.
상속관계
건설자
WebSocketMessage
패키지 처리 메시지 객체 생성자
1
2
3
4new WebSocketMessage(Integer type = ws.BINARY,
Boolean masked = true,
Boolean compress = false,
Integer maxSize = 67108864);
호출 매개변수:
- type: 정수, websocket 메시지 유형, 기본값은 websocket.BINARY입니다.
- masked: 부울, 웹소켓 메시지 마스크, 기본값은 true입니다.
- compress: 부울, 메시지가 압축되었는지 여부를 표시하며 기본값은 false입니다.
- maxSize: 정수, 최대 패킷 크기(MB), 기본값은 67108864(64M)
끊임없는
TEXT
텍스트 유형을 나타내는 메시지 유형 1을 지정합니다.
1const WebSocketMessage.TEXT = 1;
BINARY
바이너리 유형을 나타내는 메시지 유형 2를 지정합니다.
1const WebSocketMessage.BINARY = 2;
구성원 속성
masked
부울, 쿼리 및 웹소켓 마스크 플래그 읽기, 기본값은 true입니다.
1Boolean WebSocketMessage.masked;
compress
부울, 웹소켓 압축 상태 쿼리 및 읽기, 기본값은 false입니다.
1Boolean WebSocketMessage.compress;
maxSize
정수, 쿼리 및 최대 패킷 크기(바이트) 설정, 기본값은 67108864(64M)입니다.
1Integer WebSocketMessage.maxSize;
value
문자열, 메시지의 기본 내용
1String WebSocketMessage.value;
params
NArray, 메시지의 기본 매개변수
1readonly NArray WebSocketMessage.params;
type
정수, 메시지 유형
1Integer WebSocketMessage.type;
data
값은 메시지의 데이터를 쿼리합니다. 이 속성은 콘텐츠 유형에 따라 다른 데이터를 반환합니다. 텍스트인 경우 텍스트를 반환합니다.json돌아올 때json, 그렇지 않으면 바이너리를 반환합니다.
1readonly Value WebSocketMessage.data;
body
SeekableStream, 메시지의 데이터 부분을 포함하는 스트림 객체
1SeekableStream WebSocketMessage.body;
length
Long, 메시지 데이터 부분의 길이
1readonly Long WebSocketMessage.length;
stream
Stream, readFrom 메시지를 쿼리할 때의 스트림 객체
1readonly Stream WebSocketMessage.stream;
lastError
문자열, 쿼리 및 메시지 처리의 마지막 오류 설정
1String WebSocketMessage.lastError;
멤버 함수
read
스트림에서 지정된 크기의 데이터를 읽습니다. 이 메서드는 해당 body 메서드의 별칭입니다.
1Buffer WebSocketMessage.read(Integer bytes = -1) async;
호출 매개변수:
- bytes: 정수, 읽을 데이터의 양을 지정합니다. 기본값은 임의 크기의 데이터 블록을 읽는 것입니다. 읽는 데이터의 크기는 장치에 따라 다릅니다.
결과 반환:
- Buffer, 스트림에서 읽은 데이터를 반환하며, 읽을 데이터가 없거나 연결이 중단된 경우 null이 반환됩니다.
readAll
스트림에서 나머지 데이터를 모두 읽습니다. 이 메서드는 해당 body 메서드의 별칭입니다.
1Buffer WebSocketMessage.readAll() async;
결과 반환:
- Buffer, 스트림에서 읽은 데이터를 반환하며, 읽을 데이터가 없거나 연결이 중단된 경우 null이 반환됩니다.
write
주어진 데이터를 작성합니다. 이 메소드는 해당 메소드의 별명입니다.
1WebSocketMessage.write(Buffer data) async;
호출 매개변수:
- data:Buffer, 기록할 데이터가 주어지면
json
주어진 데이터를 JSON 인코딩으로 작성합니다.
1Value WebSocketMessage.json(Value data);
호출 매개변수:
- data: 기록할 데이터에 따른 값
결과 반환:
- Value, 이 메서드는 데이터를 반환하지 않습니다.
메시지의 데이터를 JSON 인코딩으로 구문 분석합니다.
1Value WebSocketMessage.json();
결과 반환:
- Value, 구문 분석된 결과를 반환합니다.
pack
~에 의해msgpack인코딩은 주어진 데이터를 씁니다.
1Value WebSocketMessage.pack(Value data);
호출 매개변수:
- data: 기록할 데이터에 따른 값
결과 반환:
- Value, 이 메서드는 데이터를 반환하지 않습니다.
~에 의해msgpack메시지의 데이터 인코딩 및 구문 분석
1Value WebSocketMessage.pack();
결과 반환:
- Value, 구문 분석된 결과를 반환합니다.
end
현재 메시지 처리의 종료를 설정하고,Chain프로세서는 후속 트랜잭션을 계속하지 않습니다.
1WebSocketMessage.end();
isEnded
현재 메시지가 종료되었는지 쿼리
1Boolean WebSocketMessage.isEnded();
결과 반환:
- Boolean, 완료되면 true를 반환합니다.
clear
메시지 내용 지우기
1WebSocketMessage.clear();
sendTo
지정된 스트림 객체에 형식화된 메시지를 보냅니다.
1WebSocketMessage.sendTo(Stream stm) async;
호출 매개변수:
- stm:Stream, 형식화된 메시지를 수신하는 스트림 개체를 지정합니다.
readFrom
지정된 캐시 스트림 개체에서 형식화된 메시지를 읽고 채워진 개체를 구문 분석합니다.
1WebSocketMessage.readFrom(Stream stm) async;
호출 매개변수:
- stm:Stream, 형식화된 메시지를 읽기 위한 스트림 개체를 지정합니다.
toString
객체의 문자열 표현을 반환하며 일반적으로 "[Native Object]"를 반환하며 객체 자체의 특성에 따라 다시 구현될 수 있습니다.
1String WebSocketMessage.toString();
결과 반환:
- String, 객체의 문자열 표현을 반환합니다.
toJSON
객체의 JSON 형식 표현을 반환하며 일반적으로 객체에 의해 정의된 읽을 수 있는 속성 컬렉션을 반환합니다.
1Value WebSocketMessage.toJSON(String key = "");
호출 매개변수:
- key: 문자열, 사용되지 않음
결과 반환:
- Value, 직렬화 가능한 JSON을 포함하는 값을 반환합니다.