Поделиться через


Как использовать расширенные элементы управления WebSocket (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

В этом разделе объясняется, как использовать расширенные элементы управления сокетами при применении MessageWebSocket и StreamWebSocket в приложении среды выполнения Windows.

Что необходимо знать

Технологии

  • Windows.Networking.Sockets

    Разрешает передачу данных по сети с помощью сокетов и WebSocket.

Необходимые условия

  • Примеры данного раздела написаны на JavaScript. Рекомендуется иметь базовое представление о протоколах WebSocket.

Обзор расширенных элементов управления WebSocket

Классы MessageWebSocket и StreamWebSocket следуют одной модели использования расширенных элементов управления. Каждому из названных выше основных классов соответствуют связанные классы для доступа к расширенным элементам управления:

Основная модель использования расширенных элементов управления является одинаковой для обоих типов проколов WebSocket. Далее для примера используется StreamWebSocket, но такой же процесс может использоваться для MessageWebSocket.

Приложение всегда должно устанавливать свойство StreamWebSocketControl перед выполнением операции подключения. Поэтому лучше устанавливать дополнительные параметры сразу после создания сокета. Не пытайтесь задать свойство StreamWebSocketControl после вызова сокетом метода ConnectAsync.

Расширенные элементы управления StreamWebSocket

Для StreamWebSocket существует несколько дополнительных параметров.

  • StreamWebSocketControl.NoDelay — указывает, используется ли алгоритм Нагля для объекта StreamWebSocket.
  • StreamWebSocketControl.OutboundBufferSizeInBytes — управляет размером буфера отправки (в байтах), который используется при отправке данных для объекта StreamWebSocket.
  • StreamWebSocketControl.ProxyCredential — предоставляет прокси-серверу учетные данные для проверки подлинности с использованием схемы проверки подлинности заголовков HTTP для объекта StreamWebSocket.
  • StreamWebSocketControl.ServerCredential — предоставляет серверу WebSocket учетные данные для проверки подлинности с использованием схемы проверки подлинности заголовков HTTP для объекта StreamWebSocket.
  • StreamWebSocketControl.SupportedProtocols — получает семейство поддерживаемых подпротоколов, объявляемых серверу во время подтверждения подключения.

В качестве примера подробно рассмотрен параметр StreamWebSocketControl.NoDelay. При создании объекта StreamWebSocket для этого параметра по умолчанию должно быть задано значение true, что отключает алгоритм Нагля. Однако если StreamWebSocket будет использоваться для приложения, которое отправляет множество небольших пакетов, и задержка не будет проблемой, то алгоритм Нагля можно включить, задав для параметра StreamWebSocketControl.NoDelay значение false, чтобы уменьшить сетевой трафик.

В следующем примере создается StreamWebSocket, а StreamWebSocketControl.NoDelay присваивается значение false. После этого приложение может подключить StreamWebSocket

    var clientWebSocket = new Windows.Networking.Sockets.StreamWebSocket();

    // Get the current setting for this option
    // This isn't required, but it shows how to get the current setting
    var currentSetting = clientWebSocket.control.noDelay; 

    // Set noDelay to false so that the Nagle algorithm isn't disabled
    clientWebSocket.control.noDelay = false;
   
    // Now you can call the ConnectAsync method to connect the StreamWebSocket.

Расширенные элементы управления MessageWebSocket

Многие дополнительные параметры для MessageWebSocket такие же, как для StreamWebSocket, но существует несколько отличий.

Параметры для MessageWebSocket устанавливаются практически так же, как в приведенном выше примере.

Замечания

Кроме того, для следующих основных классов существует ряд связанных классов, которые предоставляют доступ к дополнительной информации для управления данными:

Свойства этих классов предоставляют дополнительные сведения о сокете.

Связанные разделы

Прочие ссылки

Подключение с использованием WebSocket

Как подключиться с помощью MessageWebSocket

Как подключиться с помощью StreamWebSocket

Защита соединений WebSocket с использованием TLS/SSL

Ссылки

MessageWebSocket

StreamWebSocket

Windows.Networking.Sockets

Примеры

Пример WebSocket