ОбъектВебСокет
WebSocket — это полнодуплексный протокол связи, основанный на протоколе TCP. Он устанавливает непрерывное соединение между браузером и сервером, может реализовать двустороннюю передачу данных в реальном времени и может поддерживать передачу данных в любом формате. В fibjs модуль поддержки WebSocket предоставляет соответствующий интерфейс API, который может реализовать разработку сервера и клиента WebSocket.
Модуль поддержки WebSocket представляет собой всего лишь реализацию протокола WebSocket и должен работать поверх протокола HTTP. На стороне сервера HTTP-запрос может быть преобразован в соединение WebSocket с помощью функции обновления, а на стороне клиента адрес подключаемого сервера необходимо указать через URL-адрес протокола WebSocket.
Пример запуска сервера WebSocket:
1
2
3
4
5
6
7
8
9
10
11var ws = require('ws');
var http = require('http');
var svr = new http.Server(80, {
'/ws': ws.upgrade(conn => {
conn.onmessage = e => {
conn.send('fibjs:' + e.data);
};
})
});
svr.start();
Пример установления соединения с вышеуказанным сервером в клиенте:
1
2
3
4
5
6
7
8
9
10
11
12var ws = require("ws");
var conn = new ws.Socket("ws://127.0.0.1/ws");
// emit open event
conn.onopen = () => {
console.log("websocket connected");
conn.send("hi");
};
// emit close event
conn.onmessage = evt => {
console.log("websocket receive: " + evt.data);
};
отношения наследства
Конструктор
WebSocket
Конструктор веб-сокетов
1
2
3new WebSocket(String url,
String protocol = "",
String origin = "");
Параметры звонка:
- url: строка, указывает подключенный сервер
- protocol: строка, указывает протокол установления связи, значение по умолчанию — ""
- origin: строка, указывает источник моделирования во время рукопожатия, значение по умолчанию — ""
Конструктор веб-сокетов
1
2new WebSocket(String url,
Object opts);
Параметры звонка:
- url: строка, указывает подключенный сервер
- opts: Объект, вариант подключения, по умолчанию — {}
opts содержит дополнительные параметры запроса, поддерживаемые следующим образом:
1
2
3
4
5
6
7
8{
"protocol": "", // specify the sub-protocol, default is ""
"origin": "", // specify the origin, default is ""
"perMessageDeflate": false, // specify whether to enable permessage-deflate, default is false
"maxPayload": 67108864, // specify the max payload size, default is 64MB
"httpClient": hc, // specify the http client, default is null, use the global http client
"headers": // specify the http headers, default is {}
}
статические свойства
defaultMaxListeners
Целое число, глобальное максимальное количество слушателей по умолчанию.
1static Integer WebSocket.defaultMaxListeners;
свойства члена
url
Строка, запрос сервера, к которому подключен текущий объект.
1readonly String WebSocket.url;
protocol
Строка, запрос протокола подключения текущего объекта.
1readonly String WebSocket.protocol;
origin
Строка, запрос источника текущего соединения объекта.
1readonly String WebSocket.origin;
readyState
Целое число, запросите статус подключения текущего объекта, см.ws
1readonly Integer WebSocket.readyState;
onopen
Функция, запрос и привязка событий успешного соединения, эквивалентных on("open", func);
1Function WebSocket.onopen;
onmessage
Функция, запрос и привязка событий, которые получают сообщения от другой стороны, что эквивалентно on("message", func);
1Function WebSocket.onmessage;
onclose
Функция, запрашивает и связывает события закрытия соединения, что эквивалентно on("close", func);
1Function WebSocket.onclose;
onerror
Функция, запрос и привязка событий при возникновении ошибок, что эквивалентно on("error", func);
1Function WebSocket.onerror;
функция-член
close
Закройте текущее соединение. Эта операция отправит пакет CLOSE другой стороне и будет ждать ответа другой стороны.
1
2WebSocket.close(Integer code = 1000,
String reason = "");
Параметры звонка:
- code: целое число, указывает код завершения работы, допустимое значение — 3000–4999 или 1000, значение по умолчанию — 1000.
- reason: строка, указывает причину завершения работы, значение по умолчанию — ""
send
Отправьте сообщение другому абоненту
1WebSocket.send(String data);
Параметры звонка:
- data: строка, определяет текст для отправки.
Отправьте фрагмент двоичных данных другой стороне.
1WebSocket.send(Buffer data);
Параметры звонка:
- data:Buffer, укажите отправленные двоичные данные
ref
Не допускайте выхода процесса fibjs и не допускайте выхода процесса fibjs во время привязки объекта.
1WebSocket WebSocket.ref();
Результаты возврата:
- WebSocket, возвращает текущий объект
unref
Разрешить завершение процесса fibjs. Разрешить завершение процесса fibjs во время привязки объекта.
1WebSocket WebSocket.unref();
Результаты возврата:
- WebSocket, возвращает текущий объект
on
Привязать обработчик событий к объекту
1
2Object WebSocket.on(String ev,
Function func);
Параметры звонка:
- ev: строка, указывает название события.
- func: Функция, укажите функцию обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Привязать обработчик событий к объекту
1Object WebSocket.on(Object map);
Параметры звонка:
- map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
addListener
Привязать обработчик событий к объекту
1
2Object WebSocket.addListener(String ev,
Function func);
Параметры звонка:
- ev: строка, указывает название события.
- func: Функция, укажите функцию обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Привязать обработчик событий к объекту
1Object WebSocket.addListener(Object map);
Параметры звонка:
- map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
prependListener
Привяжите обработчик событий к источнику объекта
1
2Object WebSocket.prependListener(String ev,
Function func);
Параметры звонка:
- ev: строка, указывает название события.
- func: Функция, укажите функцию обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Привяжите обработчик событий к источнику объекта
1Object WebSocket.prependListener(Object map);
Параметры звонка:
- map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
once
Привяжите к объекту одноразовый обработчик событий. Одноразовый обработчик будет срабатывать только один раз.
1
2Object WebSocket.once(String ev,
Function func);
Параметры звонка:
- ev: строка, указывает название события.
- func: Функция, укажите функцию обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Привяжите к объекту одноразовый обработчик событий. Одноразовый обработчик будет срабатывать только один раз.
1Object WebSocket.once(Object map);
Параметры звонка:
- map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
prependOnceListener
Привяжите обработчик событий к источнику объекта
1
2Object WebSocket.prependOnceListener(String ev,
Function func);
Параметры звонка:
- ev: строка, указывает название события.
- func: Функция, укажите функцию обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Привяжите обработчик событий к источнику объекта
1Object WebSocket.prependOnceListener(Object map);
Параметры звонка:
- map: Объект, определяет связь сопоставления событий, имя атрибута объекта будет использоваться в качестве имени события, а значение атрибута будет использоваться в качестве функции обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
off
Отменить назначение функции из очереди обработки объекта
1
2Object WebSocket.off(String ev,
Function func);
Параметры звонка:
- ev: строка, указывает название события.
- func: Функция, укажите функцию обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Отменить все функции в очереди обработки объекта
1Object WebSocket.off(String ev);
Параметры звонка:
- ev: строка, указывает название события.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Отменить назначение функции из очереди обработки объекта
1Object WebSocket.off(Object map);
Параметры звонка:
- map: Объект, определяет связь сопоставления событий, имя атрибута объекта используется в качестве имени события, а значение атрибута используется в качестве функции обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
removeListener
Отменить назначение функции из очереди обработки объекта
1
2Object WebSocket.removeListener(String ev,
Function func);
Параметры звонка:
- ev: строка, указывает название события.
- func: Функция, укажите функцию обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Отменить все функции в очереди обработки объекта
1Object WebSocket.removeListener(String ev);
Параметры звонка:
- ev: строка, указывает название события.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Отменить назначение функции из очереди обработки объекта
1Object WebSocket.removeListener(Object map);
Параметры звонка:
- map: Объект, определяет связь сопоставления событий, имя атрибута объекта используется в качестве имени события, а значение атрибута используется в качестве функции обработки событий.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
removeAllListeners
Отменяет все прослушиватели всех событий из очереди обработки объекта. Если событие указано, удаляются все прослушиватели указанного события.
1Object WebSocket.removeAllListeners(String ev);
Параметры звонка:
- ev: строка, указывает название события.
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
Отменяет все прослушиватели всех событий из очереди обработки объекта. Если событие указано, удаляются все прослушиватели указанного события.
1Object WebSocket.removeAllListeners(Array evs = []);
Параметры звонка:
- evs: Массив, укажите название события
Результаты возврата:
- Object, возвращает сам объект события для облегчения цепных вызовов
setMaxListeners
Ограничение количества прослушивателей по умолчанию, только для совместимости.
1WebSocket.setMaxListeners(Integer n);
Параметры звонка:
- n: Целое число, укажите количество событий
getMaxListeners
Получает предельное количество прослушивателей по умолчанию, только для совместимости.
1Integer WebSocket.getMaxListeners();
Результаты возврата:
- Integer, возвращает лимитируемое количество по умолчанию
listeners
Запросить массив прослушивателей для указанного события объекта
1Array WebSocket.listeners(String ev);
Параметры звонка:
- ev: строка, указывает название события.
Результаты возврата:
- Array, возвращает массив прослушивателей для указанного события
listenerCount
Запрос количества прослушивателей для указанного события объекта
1Integer WebSocket.listenerCount(String ev);
Параметры звонка:
- ev: строка, указывает название события.
Результаты возврата:
- Integer, возвращает количество прослушивателей указанного события
Запрос количества прослушивателей для указанного события объекта
1
2Integer WebSocket.listenerCount(Value o,
String ev);
Параметры звонка:
- o: Значение, указывает объект запроса.
- ev: строка, указывает название события.
Результаты возврата:
- Integer, возвращает количество прослушивателей указанного события
eventNames
Имя события прослушивателя запроса
1Array WebSocket.eventNames();
Результаты возврата:
- Array, возвращает массив имен событий
emit
Активно запускать событие
1
2Boolean WebSocket.emit(String ev,
...args);
Параметры звонка:
- ev: строка, имя события
- args: ..., параметры события будут переданы в функцию обработки событий
Результаты возврата:
- Boolean, возвращает статус триггера события, возвращает true, если есть ответное событие, в противном случае возвращает false
toString
Возвращает строковое представление объекта. Обычно возвращается «[Native Object]». Объект может быть повторно реализован в соответствии с его собственными характеристиками.
1String WebSocket.toString();
Результаты возврата:
- String, возвращает строковое представление объекта
toJSON
Возвращает представление объекта в формате JSON, обычно возвращая коллекцию читаемых свойств, определенных объектом.
1Value WebSocket.toJSON(String key = "");
Параметры звонка:
- key: Строка, не используется.
Результаты возврата:
- Value, возвращает значение, содержащее сериализуемый JSON