객체 내장 객체

ObjectWebSocket메시지

WebSocketMessageWebSocket캡슐화하는 프로토콜의 메시지 유형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 18
var 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 4
new 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을 지정합니다.

1
const WebSocketMessage.TEXT = 1;

BINARY

바이너리 유형을 나타내는 메시지 유형 2를 지정합니다.

1
const WebSocketMessage.BINARY = 2;

구성원 속성

masked

부울, 쿼리 및 웹소켓 마스크 플래그 읽기, 기본값은 true입니다.

1
Boolean WebSocketMessage.masked;

compress

부울, 웹소켓 압축 상태 쿼리 및 읽기, 기본값은 false입니다.

1
Boolean WebSocketMessage.compress;

maxSize

정수, 쿼리 및 최대 패킷 크기(바이트) 설정, 기본값은 67108864(64M)입니다.

1
Integer WebSocketMessage.maxSize;

value

문자열, 메시지의 기본 내용

1
String WebSocketMessage.value;

params

NArray, 메시지의 기본 매개변수

1
readonly NArray WebSocketMessage.params;

type

정수, 메시지 유형

1
Integer WebSocketMessage.type;

data

값은 메시지의 데이터를 쿼리합니다. 이 속성은 콘텐츠 유형에 따라 다른 데이터를 반환합니다. 텍스트인 경우 텍스트를 반환합니다.json돌아올 때json, 그렇지 않으면 바이너리를 반환합니다.

1
readonly Value WebSocketMessage.data;

body

SeekableStream, 메시지의 데이터 부분을 포함하는 스트림 객체

1
SeekableStream WebSocketMessage.body;

length

Long, 메시지 데이터 부분의 길이

1
readonly Long WebSocketMessage.length;

stream

Stream, readFrom 메시지를 쿼리할 때의 스트림 객체

1
readonly Stream WebSocketMessage.stream;

lastError

문자열, 쿼리 및 메시지 처리의 마지막 오류 설정

1
String WebSocketMessage.lastError;

멤버 함수

read

스트림에서 지정된 크기의 데이터를 읽습니다. 이 메서드는 해당 body 메서드의 별칭입니다.

1
Buffer WebSocketMessage.read(Integer bytes = -1) async;

호출 매개변수:

  • bytes: 정수, 읽을 데이터의 양을 지정합니다. 기본값은 임의 크기의 데이터 블록을 읽는 것입니다. 읽는 데이터의 크기는 장치에 따라 다릅니다.

결과 반환:

  • Buffer, 스트림에서 읽은 데이터를 반환하며, 읽을 데이터가 없거나 연결이 중단된 경우 null이 반환됩니다.

readAll

스트림에서 나머지 데이터를 모두 읽습니다. 이 메서드는 해당 body 메서드의 별칭입니다.

1
Buffer WebSocketMessage.readAll() async;

결과 반환:

  • Buffer, 스트림에서 읽은 데이터를 반환하며, 읽을 데이터가 없거나 연결이 중단된 경우 null이 반환됩니다.

write

주어진 데이터를 작성합니다. 이 메소드는 해당 메소드의 별명입니다.

1
WebSocketMessage.write(Buffer data) async;

호출 매개변수:

  • data:Buffer, 기록할 데이터가 주어지면

json

주어진 데이터를 JSON 인코딩으로 작성합니다.

1
Value WebSocketMessage.json(Value data);

호출 매개변수:

  • data: 기록할 데이터에 따른 값

결과 반환:

  • Value, 이 메서드는 데이터를 반환하지 않습니다.

메시지의 데이터를 JSON 인코딩으로 구문 분석합니다.

1
Value WebSocketMessage.json();

결과 반환:

  • Value, 구문 분석된 결과를 반환합니다.

pack

~에 의해msgpack인코딩은 주어진 데이터를 씁니다.

1
Value WebSocketMessage.pack(Value data);

호출 매개변수:

  • data: 기록할 데이터에 따른 값

결과 반환:

  • Value, 이 메서드는 데이터를 반환하지 않습니다.

~에 의해msgpack메시지의 데이터 인코딩 및 구문 분석

1
Value WebSocketMessage.pack();

결과 반환:

  • Value, 구문 분석된 결과를 반환합니다.

end

현재 메시지 처리의 종료를 설정하고,Chain프로세서는 후속 트랜잭션을 계속하지 않습니다.

1
WebSocketMessage.end();

isEnded

현재 메시지가 종료되었는지 쿼리

1
Boolean WebSocketMessage.isEnded();

결과 반환:

  • Boolean, 완료되면 true를 반환합니다.

clear

메시지 내용 지우기

1
WebSocketMessage.clear();

sendTo

지정된 스트림 객체에 형식화된 메시지를 보냅니다.

1
WebSocketMessage.sendTo(Stream stm) async;

호출 매개변수:

  • stm:Stream, 형식화된 메시지를 수신하는 스트림 개체를 지정합니다.

readFrom

지정된 캐시 스트림 개체에서 형식화된 메시지를 읽고 채워진 개체를 구문 분석합니다.

1
WebSocketMessage.readFrom(Stream stm) async;

호출 매개변수:

  • stm:Stream, 형식화된 메시지를 읽기 위한 스트림 개체를 지정합니다.

toString

객체의 문자열 표현을 반환하며 일반적으로 "[Native Object]"를 반환하며 객체 자체의 특성에 따라 다시 구현될 수 있습니다.

1
String WebSocketMessage.toString();

결과 반환:

  • String, 객체의 문자열 표현을 반환합니다.

toJSON

객체의 JSON 형식 표현을 반환하며 일반적으로 객체에 의해 정의된 읽을 수 있는 속성 컬렉션을 반환합니다.

1
Value WebSocketMessage.toJSON(String key = "");

호출 매개변수:

  • key: 문자열, 사용되지 않음

결과 반환:

  • Value, 직렬화 가능한 JSON을 포함하는 값을 반환합니다.