Базовый модуль модуля

модули

модуль поддержки веб-сокетов

WebSocketПротокол представляет собой полнодуплексный протокол связи, основанный на протоколе TCP.Он устанавливает бесперебойное соединение между браузером и сервером, может реализовать двустороннюю передачу данных в реальном времени и может поддерживать передачу данных в любом формате. В Фибис,WebSocketМодуль поддержки предоставляет соответствующие интерфейсы API для реализацииWebSocketРазработка серверной и клиентской части.

Инструкции:

1
var ws = require('ws');

Создайте сервер:

1 2 3 4 5 6 7 8 9
var 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 4
var 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

1
WebSocketMessage ws.Message;

Socket

WebSocketобъект, см.WebSocket

1
WebSocket ws.Socket;

статическая функция

upgrade

Создайте обработчик протокола веб-сокета изhttpПолучите запрос на обновление и рукопожатие, сгенерируйтеWebSocketобъект

1
static Handler ws.upgrade(Function accept);

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

  • accept: Функция, функция обработки успешного соединения, обратный вызов передаст два параметра, первый параметр — полученный.WebSocketОбъект, второй параметр — рукопожатиеHttpRequestобъект

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

  • Handler, возвращает обработчик протокола, может использоваться сHttpServer,Chain,RoutingОжидание стыковки```

Создайте обработчик протокола веб-сокета изhttpПолучите запрос на обновление и рукопожатие, сгенерируйтеWebSocketобъект

1 2
static 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, который представляет кадр продолжения.

1
const ws.CONTINUE = 0;

TEXT

Укажите тип сообщения веб-сокета 1, который представляет собой текстовый фрейм.

1
const ws.TEXT = 1;

BINARY

Укажите тип сообщения веб-сокета 2, который представляет двоичный кадр.

1
const ws.BINARY = 2;

CLOSE

Укажите тип сообщения веб-сокета 8, соединение закрыто

1
const ws.CLOSE = 8;

PING

Укажите тип сообщения веб-сокета 9, который представляет кадр проверки связи.

1
const ws.PING = 9;

PONG

Укажите тип сообщения веб-сокета 10, который представляет кадр понга.

1
const ws.PONG = 10;

CONNECTING

УказатьWebSocketстатус, указывающий, что он подключается

1
const ws.CONNECTING = 0;

OPEN

УказатьWebSocketстатус, указывающий на открытый статус

1
const ws.OPEN = 1;

CLOSING

УказатьWebSocketстатус, указывающий, что сообщение CLOSE отправлено и ожидает закрытия.

1
const ws.CLOSING = 2;

CLOSED

УказатьWebSocketстатус, указывающий, что он был закрыт

1
const ws.CLOSED = 3;