модули
модуль поддержки веб-сокетов
WebSocketПротокол представляет собой полнодуплексный протокол связи, основанный на протоколе TCP.Он устанавливает бесперебойное соединение между браузером и сервером, может реализовать двустороннюю передачу данных в реальном времени и может поддерживать передачу данных в любом формате. В Фибис,WebSocketМодуль поддержки предоставляет соответствующие интерфейсы API для реализацииWebSocketРазработка серверной и клиентской части.
Инструкции:
1var ws = require('ws');
Создайте сервер:
1
2
3
4
5
6
7
8
9var ws = require('ws');
var http = require('http');
var svr = new http.Server(80, {
'/ws': ws.upgrade((conn, req) => {
conn.onmessage = e => console.log(e.data);
})
});
svr.start();
В приведенном выше коде встроенный fibjs сначала загружается через функцию require.WebSocketПоддержите модули, затем используйтеhttp.ServerКласс создает экземпляр HTTP-сервера, указывает номер порта прослушивания и путь HTTP-запроса, а затем использует функцию обновления по указанному пути для обновления запроса доWebSocketсоединение, сервер автоматически создаетWebSocketОбъект предоставляет события onopen, onmessage, onerror, onclose и другие события и может отправлять данные клиенту через функцию отправки.
использоватьWebSocketКлиент:
1
2
3
4var ws = require('ws');
var conn = new ws.Socket('ws://127.0.0.1/ws');
conn.onmessage = e => console.log(e.data);
Может быть созданSocketэкземпляр и укажитеWebSocketURL-адрес для завершения подключения клиента.SocketКласс предоставляет onmessage, onerror, onclose и другие функции обратного вызова, а также функции отправки, которые могут отправлять данные на сервер и получать данные, отправленные сервером.
нужно знать,WebSocketМодули поддержки простоWebSocketРеализация протокола, который должен работать поверх протокола HTTP. На стороне сервера функцию обновления можно использовать для преобразования HTTP-запросов вWebSocketсоединение, и на стороне клиента вам необходимо передатьWebSocketURL-адрес протокола для указания адреса сервера для подключения.
объект
Message
Создайте объект сообщения веб-сокета, см.WebSocketMessage
1WebSocketMessage ws.Message;
Socket
1WebSocket ws.Socket;
статическая функция
upgrade
Создайте обработчик протокола веб-сокета изhttpПолучите запрос на обновление и рукопожатие, сгенерируйтеWebSocketобъект
1static Handler ws.upgrade(Function accept);
Параметры звонка:
- accept: Функция, функция обработки успешного соединения, обратный вызов передаст два параметра, первый параметр — полученный.WebSocketОбъект, второй параметр — рукопожатиеHttpRequestобъект
Результаты возврата:
- Handler, возвращает обработчик протокола, может использоваться сHttpServer,Chain,RoutingОжидание стыковки```
Создайте обработчик протокола веб-сокета изhttpПолучите запрос на обновление и рукопожатие, сгенерируйтеWebSocketобъект
1
2static Handler ws.upgrade(Object opts,
Function accept);
Параметры звонка:
- opts: Объект, вариант подключения, по умолчанию — {}
- accept: Функция, функция обработки успешного соединения, обратный вызов передаст два параметра, первый параметр — полученный.WebSocketОбъект, второй параметр — рукопожатиеHttpRequestобъект
Результаты возврата:
- Handler, возвращает обработчик протокола, может использоваться сHttpServer,Chain,RoutingОжидание стыковки
opts содержит дополнительные параметры запроса, поддерживаемые следующим образом:
1
2
3
4{
"perMessageDeflate": false, // specify whether to use permessage-deflate, default is true
"maxPayload": 67108864 // specify the maximum allowed message size, default is 64MB
}
постоянный
CONTINUE
Укажите тип сообщения веб-сокета 0, который представляет кадр продолжения.
1const ws.CONTINUE = 0;
TEXT
Укажите тип сообщения веб-сокета 1, который представляет собой текстовый фрейм.
1const ws.TEXT = 1;
BINARY
Укажите тип сообщения веб-сокета 2, который представляет двоичный кадр.
1const ws.BINARY = 2;
CLOSE
Укажите тип сообщения веб-сокета 8, соединение закрыто
1const ws.CLOSE = 8;
PING
Укажите тип сообщения веб-сокета 9, который представляет кадр проверки связи.
1const ws.PING = 9;
PONG
Укажите тип сообщения веб-сокета 10, который представляет кадр понга.
1const ws.PONG = 10;
CONNECTING
УказатьWebSocketстатус, указывающий, что он подключается
1const ws.CONNECTING = 0;
OPEN
УказатьWebSocketстатус, указывающий на открытый статус
1const ws.OPEN = 1;
CLOSING
УказатьWebSocketстатус, указывающий, что сообщение CLOSE отправлено и ожидает закрытия.
1const ws.CLOSING = 2;
CLOSED
УказатьWebSocketстатус, указывающий, что он был закрыт
1const ws.CLOSED = 3;