Объект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
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.SocketObject и предоставляет 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.BINARY.
- masked: логическое значение, маска сообщения веб-сокета, по умолчанию — true.
- compress: логическое значение, указывает, сжато ли сообщение, значение по умолчанию — false.
- maxSize: целое число, максимальный размер пакета в МБ, по умолчанию — 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
Чтение данных указанного размера из потока.Этот метод является псевдонимом соответствующего метода тела.
1Buffer WebSocketMessage.read(Integer bytes = -1) async;
Параметры звонка:
- bytes: целое число, указывает объем считываемых данных.По умолчанию считываются блоки данных случайного размера.Размер считываемых данных зависит от устройства.
Результаты возврата:
- Buffer, возвращает данные, считанные из потока. Если данных для чтения нет или соединение прервано, возвращается значение null.
readAll
Считайте все оставшиеся данные из потока.Этот метод является псевдонимом соответствующего метода тела.
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