StreamWebSocket 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 네임스페이스에는 WebSocket을 사용할 때 오류를 처리하기 위한 편리한 도우미 메서드와 열거형이 있습니다. 특정 네트워크 예외를 앱에서 다르게 처리하는 데 유용합니다. 또한 앱은 매개 변수 유효성 검사 오류에 대한 예외의 HRESULT 를 사용하여 예외를 발생시킨 오류에 대한 자세한 정보를 확인할 수 있습니다.
가능한 예외 및 예외를 처리하는 방법에 대한 자세한 내용은 네트워크 앱에서 예외 처리를 참조하세요.
Windows Server 2012 StreamWebSocket 사용
Windows Server 2012 및 Windows Server 2012 R2에서 Media Foundation 기능을 사용하도록 설정하지 않으면 Windows.Networking.Sockets 네임스페이스에서 대부분의 클래스를 구현하는Windows.Networking.dll로드되지 않습니다. 따라서 Media Foundation 기능을 사용하지 않도록 설정하면 Windows.Networking.Sockets 네임스페이스에서 StreamWebSocket 및 관련 WebSocket 클래스를 사용하는 앱이 실패합니다. Media Foundation 기능이 사용하지 않도록 설정된 Windows Server 2012 또는 Windows Server 2012 R2 설치
Media Foundation 기능은 서버 관리자 사용하거나 명령 프롬프트 또는 스크립트에 다음 텍스트를 입력하여 Windows Server 2012 또는 Windows Server 2012 R2에서 사용하도록 설정할 수 있습니다.
dism /online /enable-feature /featurename:ServerMediaFoundation
Media Foundation 기능을 사용하도록 설정하면 사용자에게 다시 시작하라는 메시지가 표시됩니다. 컴퓨터를 다시 시작하면 Windows.Networking.Sockets 네임스페이스의 소켓 및 WebSocket에 대한 클래스가 예상대로 작동합니다.
버전 기록
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) |
StreamWebSocket 개체에서 WebSocket 프로토콜 핸드셰이크에 사용되는 HTTP 요청 메시지에 HTTP 요청 헤더를 추가합니다. |
이벤트
Closed |
가까운 핸드셰이크의 일부로 StreamWebSocket 개체에서 닫기 프레임을 수신할 때 발생합니다. |
ServerCustomValidationRequested |
보안 서버 URI(wss: 프로토콜)에 대한 새 StreamWebSocket 연결의 유효성을 검사할 때 발생합니다. 연결에 대한 사용자 지정 서버 유효성 검사를 구현하려는 경우 이 이벤트를 처리합니다. |