StreamWebSocket Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Поддерживает сетевое взаимодействие, позволяющее читать и записывать потоки с помощью WebSocket.
public ref class StreamWebSocket sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class StreamWebSocket final : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class StreamWebSocket final : IClosable
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class StreamWebSocket : System.IDisposable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class StreamWebSocket : System.IDisposable
function StreamWebSocket()
Public NotInheritable Class StreamWebSocket
Implements IDisposable
- Наследование
- Атрибуты
- Реализации
Требования к Windows
| Требования | Описание |
|---|---|
| Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
| API contract |
Windows.Foundation.UniversalApiContract (появилось в v1.0)
|
| Возможности приложения |
internetClient
privateNetworkClientServer
|
Комментарии
Класс StreamWebSocket предоставляет потоковую абстракцию протокола WebSocket на основе потока. Это полезно для сценариев, в которых необходимо передать большие файлы (например, фотографии или фильмы). Использование StreamWebSocket позволяет считывать разделы сообщения с каждой операцией чтения, а не требовать чтения всего сообщения в одной операции (как и MessageWebSocket).
StreamWebSocket поддерживает только двоичные сообщения. Для сообщений UTF-8 необходимо использовать MessageWebSocket .
Обработка исключений
Необходимо написать код для обработки исключений при вызове асинхронных методов в классе StreamWebSocket. Исключения могут возникать из ошибок проверки параметров, сбоев разрешения имен и сетевых ошибок. Исключения из сетевых ошибок (потеря подключения, сбои подключения и ошибки HTTP-сервера, например) могут произойти в любое время. Эти ошибки приводят к возникновению исключений. Если приложение не обрабатывается, исключение может привести к прекращению всего приложения средой выполнения.
Windows. Пространство имен Networking.Sockets имеет удобный вспомогательный метод и перечисление для обработки ошибок при использовании WebSockets. Это может быть полезно, чтобы по-разному обрабатывать определённые сетевые исключения в вашем приложении. Приложение также может использовать HRESULT из исключения при ошибках проверки параметров, чтобы узнать более подробные сведения об ошибке, вызвавшей исключение.
Дополнительные сведения о возможных исключениях и способах обработки исключений см. в разделе "Обработка исключений" в сетевых приложениях.
Использование StreamWebSocket в Windows Server 2012
На Windows Server 2012 и Windows Server 2012 R2 Windows.Networking.dll, реализующей большинство классов в Windows. Пространство имен Networking.Sockets не будет загружаться, если функция Media Foundation не включена. В результате приложения, использующие StreamWebSocket и связанные классы WebSocket в Windows. Пространство имен Networking.Sockets завершится ошибкой, если функция Media Foundation отключена. Windows Server 2012 или Windows Server 2012 R2 устанавливается с отключенной функцией Media Foundation.
Компонент Media Foundation можно включить в Windows Server 2012 или Windows Server 2012 R2 с помощью диспетчер сервера или ввода следующего текста в командной строке или скрипте:
dism /online /enable-feature /featurename:ServerMediaFoundation После включения функции Media Foundation пользователю будет предложено перезапустить. После перезапуска компьютера классы для сокетов и WebSockets в Windows. Пространство имен Networking.Sockets будет работать должным образом.
Журнал версий
| Версия Windows | Версия пакета SDK | Добавленная ценность |
|---|---|---|
| 1607 | 14393 | ServerCustomValidationRequested |
Конструкторы
| Имя. | Описание |
|---|---|
| StreamWebSocket() |
Создает новый объект StreamWebSocket . |
Свойства
| Имя. | Описание |
|---|---|
| Control |
Возвращает данные элемента управления сокета для объекта StreamWebSocket . |
| Information |
Возвращает сведения о сокете объекта StreamWebSocket . |
| InputStream |
Возвращает входной поток для чтения из удаленного назначения в объекте StreamWebSocket . |
| OutputStream |
Возвращает выходной поток для записи в назначение удаленной сети в объекте StreamWebSocket . |
Методы
| Имя. | Описание |
|---|---|
| Close() |
Закрывает StreamWebSocket и отправляет пустой закрытый кадр на сервер. |
| Close(UInt16, String) |
Закрывает StreamWebSocket и указывает причину закрытия. |
| ConnectAsync(Uri) |
Запускает асинхронную операцию для подключения к удаленному назначению сети в объекте StreamWebSocket . |
| Dispose() |
Выполняет определяемые приложением задачи, связанные с освобождением, освобождением или сбросом неуправляемых ресурсов. |
| SetRequestHeader(String, String) |
Добавляет заголовок HTTP-запроса в сообщение HTTP-запроса, используемое в подтверждении протокола WebSocket объектом StreamWebSocket . |
События
| Имя. | Описание |
|---|---|
| Closed |
Происходит при получении близкого кадра в объекте StreamWebSocket в рамках близкого подтверждения. |
| ServerCustomValidationRequested |
Происходит при проверке нового подключения StreamWebSocket к защищенному URI сервера (wss: протокол). Обработайте это событие, если вы хотите реализовать проверку пользовательского сервера для подключения. |