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


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
Наследование
Object Platform::Object IInspectable StreamWebSocket
Атрибуты
Реализации

Требования к 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 имеет удобный вспомогательный метод и перечисление для обработки ошибок при использовании WebSocket. Это удобно, чтобы по-разному обрабатывать в приложении различные сетевые исключения. Приложение также может использовать 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 пользователю предлагается перезапустить его. После перезагрузки компьютера классы для сокетов и WebSocket в пространстве имен 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: protocol). Обработайте это событие, если вы хотите реализовать настраиваемую проверку сервера для подключения.

Применяется к

См. также раздел