Язык

MessageWebSocket Класс

Определение

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

public ref class MessageWebSocket 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 MessageWebSocket 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 MessageWebSocket 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 MessageWebSocket : 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 MessageWebSocket : System.IDisposable
function MessageWebSocket()
Public NotInheritable Class MessageWebSocket
Implements IDisposable
Наследование
Object Platform::Object IInspectable MessageWebSocket
Атрибуты
Реализации

Требования к Windows

Требования Описание
Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)
Возможности приложения
internetClient privateNetworkClientServer

Комментарии

Класс MessageWebSocket предоставляет абстракцию на основе сообщений протокола WebSocket. При использовании MessageWebSocket весь сообщение WebSocket считывается или записывается в одну операцию. В отличие от этого , StreamWebSocket позволяет считывать разделы сообщения с каждой операцией чтения, а не требовать чтения всего сообщения в одной операции.

Для сообщений UTF-8 необходимо использовать MessageWebSocket. StreamWebSocket поддерживает только двоичные сообщения.

Обработка исключений

Необходимо написать код для обработки исключений при вызове асинхронных методов в классе MessageWebSocket. Исключения могут возникать из ошибок проверки параметров, сбоев разрешения имен и сетевых ошибок. Исключения из сетевых ошибок (потеря подключения, сбои подключения и ошибки HTTP-сервера, например) могут произойти в любое время. Эти ошибки приводят к возникновению исключений. Если приложение не обрабатывается, исключение может привести к прекращению всего приложения средой выполнения.

Windows. Пространство имен Networking.Sockets имеет удобный вспомогательный метод и перечисление для обработки ошибок при использовании WebSockets. Это может быть полезно, чтобы по-разному обрабатывать определённые сетевые исключения в вашем приложении. Приложение также может использовать HRESULT из исключения при ошибках проверки параметров, чтобы узнать более подробные сведения об ошибке, вызвавшей исключение.

Дополнительные сведения о возможных исключениях и способах обработки исключений см. в разделе "Обработка исключений" в сетевых приложениях.

Использование MessageWebSocket в Windows Server 2012

На Windows Server 2012 и Windows Server 2012 R2 Windows.Networking.dll, реализующей большинство классов в Windows. Пространство имен Networking.Sockets не будет загружаться, если функция Media Foundation не включена. В результате приложения, использующие классы MessageWebSocket и связанные классы 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
1803 17134 SendFinalFrameAsync
1803 17134 SendNonfinalFrameAsync

Конструкторы

Имя. Описание
MessageWebSocket()

Создает новый объект MessageWebSocket .

Свойства

Имя. Описание
Control

Возвращает данные элемента управления сокета в объекте MessageWebSocket .

Information

Возвращает сведения о сокете объекта MessageWebSocket .

OutputStream

Возвращает выходной поток для записи в назначение удаленной сети в объекте MessageWebSocket .

Методы

Имя. Описание
Close()

Закрывает объект MessageWebSocket и отправляет пустой закрытый кадр на сервер.

Close(UInt16, String)

Закрывает объект MessageWebSocket и указывает причину закрытия.

ConnectAsync(Uri)

Запускает асинхронную операцию для подключения к удаленному назначению сети в объекте MessageWebSocket .

Dispose()

Выполняет определяемые приложением задачи, связанные с освобождением, освобождением или сбросом неуправляемых ресурсов.

SendFinalFrameAsync(IBuffer)

Асинхронно (с прогрессом) записывает кадр данных в последовательном потоке с семантикой, которая является последним кадром в сообщении WebSocket (бит FIN в этом кадре имеет значение 1). Этот метод и SendNonfinalFrameAsync позволяют отправлять отдельные кадры WebSocket.

SendNonfinalFrameAsync(IBuffer)

Асинхронно (с прогрессом) записывает кадр данных в последовательном потоке с семантикой, которая будет соответствовать нескольким кадрам для того же сообщения WebSocket (бит FIN в этом кадре имеет значение 0). Этот метод и SendFinalFrameAsync позволяют отправлять отдельные кадры WebSocket.

SetRequestHeader(String, String)

Добавляет заголовок HTTP-запроса в сообщение HTTP-запроса, используемое в подтверждении протокола WebSocket объектом MessageWebSocket .

События

Имя. Описание
Closed

Происходит при получении близкого кадра в объекте MessageWebSocket в рамках близкого подтверждения.

MessageReceived

Событие, указывающее, что сообщение получено в объекте MessageWebSocket .

ServerCustomValidationRequested

Происходит при проверке нового подключения MessageWebSocket к защищенному URI сервера (wss: протокол). Обработайте это событие, если вы хотите реализовать проверку пользовательского сервера для подключения.

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

См. также