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


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

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

Отправка и получение данных с помощью WebSocket для защищенного двустороннего сетевого подключения с низкой задержкой в реальном времени с использованием компонентов в пространстве имен Windows.Networking.Sockets.

Что такое WebSocket?

Протокол WebSocket определяет механизм быстрого и безопасного двустороннего взаимодействия между клиентом и сервером через Интернет. Данные передаются мгновенно с помощью полнодуплексного подключения через единственный сокет, при этом обе конечные точки могут отправлять и получать сообщения в реальном времени. WebSocket отлично подходит для использования в приложениях среды выполнения Windows, включая игры в реальном времени, мгновенные уведомления социальных сетей, отображение свежей информации о курсе акций или о погоде, а также в других приложениях, для которых необходима безопасная и быстрая передача данных. WebSocket также работает через прокси-серверы и брандмауэры, так как по умолчанию протокол WebSocket использует те же порты, что и веб-браузеры (HTTP и HTTPS).

Чтобы установить соединение WebSocket, клиент и сервер обмениваются специальным подтверждением, основанным на протоколе HTTP. В случае успешного выполнения протокол прикладного уровня "обновляется" с HTTP до WebSocket, используя ранее установленное соединение TCP. После этого HTTP больше не задействован. Данные могут быть отправлены или получены с использованием протокола WebSocket любой конечной точкой в любое время до завершения подключения WebSocket.

Важно  Клиент не может использовать WebSocket для передачи данных, если сервер не использует протокол WebSocket. Если сервер не поддерживает WebSocket, вам придется использовать другой метод передачи данных.

 

Пространство имен Windows.Networking.Sockets поддерживает клиентские объекты WebSocket в среде выполнения Windows. Клиентские и серверные объекты WebSocket поддерживаются в Windows 8.1 для классических приложений.

Пространство имен Windows.Networking.Sockets определяет два типа объектов WebSocket, которые могут использовать клиенты в приложениях среды выполнения Windows: MessageWebSocket и StreamWebSocket. В таблице ниже описываются два типа объектов WebSocket.

MessageWebSocket StreamWebSocket
Подходит для обычных сценариев, в которых не используются очень большие сообщения. Подходит для сценариев, в которых передаются большие файлы, например фотографии или фильмы.
Включает уведомление о получении всего сообщения WebSocket. Позволяет считывать части сообщения при каждой операции чтения.
Поддерживает как сообщения в кодировке UTF-8, так и двоичные сообщения. Поддерживает только двоичные сообщения.
Отчасти аналогичен UDP-сокету (DatagramSocket). Отчасти аналогичен TCP-сокету (StreamSocket).

 

Использование WebSocket вместе с сетевой изоляцией

Функция сетевой изоляции в среде выполнения Windows позволяет разработчику управлять доступом приложения среды выполнения Windows к сети и ограничивать его. Доступ к сети может потребоваться не всем приложениям. Однако для приложений, нуждающихся в нем, среда выполнения Windows предоставляет разные уровни доступа к сети, которые обеспечиваются выбором подходящих возможностей.

Сетевая изоляция позволяет разработчику определить для каждого приложения область необходимого доступа к сети. Приложению без соответствующей определенной области запрещен доступ к отдельному типу сети и к отдельному типу сетевых запросов (только исходящим запросам, инициированным клиентом, или им же в сочетании с входящими нежелательными запросами). Возможность настраивать и применять сетевую изоляцию гарантирует, что даже в случае компрометации приложения оно сможет получить доступ только к тем сетям, к которым доступ ему предоставлен явно. Таким образом значительно сокращается область воздействия на другие приложения и Windows.

Сетевая изоляция влияет на все элементы класса в пространстве имен Windows.Networking.Sockets, которые пытаются получить доступ к сети. Сетевая изоляция активно используется в Windows. Вызов метода для класса MessageWebSocket или StreamWebSocket в пространстве имен Windows.Networking.Sockets, обеспечивающий доступ к сети, может быть не выполнен из-за сетевой изоляции, если соответствующая возможность сети не была включена.

Возможности сети для приложения настраиваются в его манифесте при сборке. Возможности сети обычно добавляются с помощью Microsoft Visual Studio 2013 Обновление 2 в ходе разработки приложения. Возможности сети можно также задать вручную в файле манифеста приложения, используя текстовый редактор.

Дополнительные сведения о сетевой изоляции см. в разделе Как настроить возможности сети.

Разработчики

В приведенных в следующих разделах примерах, основанных на примере WebSocket, используется JavaScript. Общую справку по созданию приложения среды выполнения Windows на JavaScript см. в разделе Схема создания приложений среды выполнения Windows на JavaScript.

В этом разделе:

Тема Описание
Подключение с помощью MessageWebSocket

Определяются требования и специальные действия при использовании MessageWebSocket для отправки и получения данных от веб-сервера.

Подключение с помощью StreamWebSocket

Определяются требования и специальные действия при использовании StreamWebSocket для отправки и получения данных от веб-сервера.

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

Объясняется, как использовать расширенные элементы управления для задания параметров объекта WebSocket.

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

Описывается защита соединений WebSocket с использованием протокола TLS/SSL.

 

Узнайте об аналогичных или связанных технологиях

Раздел Описание
Настройка возможностей сетевой изоляции

Описывается компонент сетевой изоляции и способы настройки возможностей сетевой изоляции, позволяющие полностью управлять доступом к сети для приложения Магазина Windows.

Установление сетевых подключений с использованием сокетов

Определяются требования и специальные действия при использовании сокетов для отправки и получения данных от сетевого ресурса.

Добавление поддержки сети

Предоставлены сведения о добавлении поддержки сети в ваше приложение.

Устранение неполадок и отладка сетевых подключений

Предоставлены советы и информация по устранению неполадок подключений.

 

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

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

Схема создания приложений среды выполнения Windows на JavaScript

Ссылки

MessageWebSocket

StreamWebSocket

Windows.Networking.Sockets

Примеры

Пример WebSocket