Встроенный объект объекта

ОбъектWebSocketMessage

WebSocketMessageдаWebSocketТип сообщения в протоколе, который инкапсулируетWebSocketФормат данных и методы обработки различных сообщений в протоколе передачи могут использоваться дляWebSocketКлиент и сервер общаются.

Конструктор класса WebSocketMessageподдерживает указанный параметр типа сообщения type, который имеет три необязательных значения:

  • ws.TEXT: представляет сообщение текстового типа, содержимое которого представляет собой строку.
  • ws.BINARY: представляет сообщение двоичного типа, содержимое которого представляет собой двоичные данные.

Кроме того, вы также можете WebSocketMessage.maskedуказать, нужно ли применять маску, изменив атрибут, и WebSocketMessage.compressтребуется ли сжатие с помощью атрибута.

Следующий код является примером сервера веб-сокетов. Когда клиент подключается, сервер отправляет полученное сообщение обратно клиенту:

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.SocketObject и предоставляет 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.BINARY.
  • masked: логическое значение, маска сообщения веб-сокета, по умолчанию — true.
  • compress: логическое значение, указывает, сжато ли сообщение, значение по умолчанию — false.
  • maxSize: целое число, максимальный размер пакета в МБ, по умолчанию — 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

Чтение данных указанного размера из потока.Этот метод является псевдонимом соответствующего метода тела.

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

Параметры звонка:

  • bytes: целое число, указывает объем считываемых данных.По умолчанию считываются блоки данных случайного размера.Размер считываемых данных зависит от устройства.

Результаты возврата:

  • Buffer, возвращает данные, считанные из потока. Если данных для чтения нет или соединение прервано, возвращается значение null.

readAll

Считайте все оставшиеся данные из потока.Этот метод является псевдонимом соответствующего метода тела.

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