ControlChannelTrigger 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
TCP 연결을 설정하고 들어오는 트래픽에 대한 알림을 받고자 하는 개체에 대해 백그라운드에서 실시간 알림을 받을 수 있도록 합니다.
ControlChannelTrigger를 사용하기 전에 **BackgroundExecutionManager.RequestAccessAsync**를 호출합니다.
참고
이 클래스는 Windows Phone 지원되지 않습니다.
public ref class ControlChannelTrigger sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(Windows.Networking.Sockets.IControlChannelTriggerFactory, 65536, Windows.Networking.Sockets.ControlChannelTriggerContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Networking.Sockets.ControlChannelTriggerContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.MTA)]
class ControlChannelTrigger final : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Networking.Sockets.ControlChannelTriggerContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.MTA)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Networking.Sockets.IControlChannelTriggerFactory, 65536, "Windows.Networking.Sockets.ControlChannelTriggerContract")]
class ControlChannelTrigger final : IClosable
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Networking.Sockets.IControlChannelTriggerFactory), 65536, typeof(Windows.Networking.Sockets.ControlChannelTriggerContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Networking.Sockets.ControlChannelTriggerContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.MTA)]
public sealed class ControlChannelTrigger : System.IDisposable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Networking.Sockets.ControlChannelTriggerContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.MTA)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Networking.Sockets.IControlChannelTriggerFactory), 65536, "Windows.Networking.Sockets.ControlChannelTriggerContract")]
public sealed class ControlChannelTrigger : System.IDisposable
Public NotInheritable Class ControlChannelTrigger
Implements IDisposable
- 상속
- 특성
- 구현
Windows 요구 사항
디바이스 패밀리 |
Windows Desktop Extension SDK (10.0.10240.0에서 도입되었습니다.)
Windows Mobile Extension SDK (10.0.10240.0에서 도입되었습니다.) |
API contract |
Windows.Networking.Sockets.ControlChannelTriggerContract (v1.0에서 도입되었습니다.)
|
설명
ControlChannelTrigger 클래스 및 관련 인터페이스는 앱이 포그라운드 앱이 아닌 경우 앱이 네트워크를 사용할 수 있도록 하는 데 사용됩니다. 유니버설 Windows 앱은 더 이상 포그라운드 앱에 없고 백그라운드로 이동하면 일반적으로 일시 중단됩니다. 앱 일시 중단(예: 적극적으로 인쇄, 오디오 스트림 액세스 및 백그라운드에서 파일 전송)에는 몇 가지 예외가 있습니다. ControlChannelTrigger 클래스를 사용하면 TCP 연결을 설정한 네트워크 앱이 설정된 네트워크 연결을 계속 작동하도록 시스템에 알릴 수 있으며, 앱에 대한 네트워크 데이터가 수신되거나 서버 연결 유지 타이머 간격이 만료되면 시스템이 일시 중단된 앱을 해제해야 합니다. 앱이 백그라운드에 있더라도 네트워크 연결을 유지해야 하는 경우 제어 채널 트리거를 사용합니다.
ControlChannelTrigger 클래스를 DatagramSocket, StreamSocket 또는 StreamSocketListener와 함께 사용할 수 있지만 Windows 10 해당 클래스를 사용하고 백그라운드에서 연결을 유지하려는 앱에 대해 향상된 메커니즘을 제공합니다. SocketActivityTrigger 및 소켓 브로커에 대한 자세한 내용은 백그라운드의 네트워크 통신을 참조하세요.
ControlChannelTrigger 클래스는 TCP 연결을 설정하는 다음 인스턴스에서 사용하는 것이 좋습니다.
- Windows.Web.Http 네임스페이스의 HttpClient 클래스입니다.
- .NET Framework System.Net.Http 네임스페이스의 HttpClient 및 HttpClientHandler 클래스입니다. 이러한 클래스에서 파생되는 사용자 지정 클래스도 지원됩니다.
- IXMLHTTPRequest2 인터페이스입니다. IXMLHTTPRequest2 인터페이스는 W3C(World Wide Web Consortium)에서 게시한 여러 작업 초안에 정의된 XMLHttpRequest 개체에 대한 확장입니다.
네트워크 앱과 관련이 있을 수 있는 여러 유형의 연결 유지 간격이 있습니다. 가장 낮은 수준에서 앱은 사용되지 않는 설정된 TCP 연결을 유지하기 위해 클라이언트 앱과 서버 간에 TCP 연결 유지 패킷을 보내도록 TCP keep-alive 옵션을 설정할 수 있습니다. HttpClient 클래스 및 XMLHttpRequest JavaScript 개체에는 TCP 유지를 사용하도록 설정하는 옵션이 없으며 이 옵션은 기본적으로 사용하지 않도록 설정됩니다. ControlChannelTrigger 클래스를 사용하여 백그라운드 네트워크 알림을 지원하려면 TCP keep-alive를 사용하지 않도록 설정해야 합니다.
ControlChannelTrigger 클래스의 컨텍스트에는 영향을 주는 두 가지 다른 연결 유지 간격이 있습니다.
- 서버 연결 유지 간격 - 앱이 일시 중단되었을 때 얼마나 자주 깨울지에 대해 앱이 시스템에 등록하는 유지 간격(분)을 나타냅니다. 시스템은 이 유지 간격에 대해 설정된 값에 따라 앱을 절전 모드에서 해제합니다. 이 값은 ControlChannelTrigger 클래스의 ServerKeepAliveIntervalInMinutes 속성으로 표현되며 ControlChannelTrigger 생성자에 대한 인수로 설정됩니다. 이 값은 네트워크 앱이 일반적으로 앱이 TCP 연결을 설정한 서버의 알려진 동작에 따라 이를 설정할 수 있기 때문에 서버 연결 유지 간격으로 간주됩니다. 예를 들어 30분 동안 앱에서 보낸 데이터가 없는 경우 웹 서버가 TCP 연결을 끊고 삭제하는 것으로 알려진 경우 네트워크 앱은 이 서버 연결 유지 간격을 25분으로 설정할 수 있습니다.
- 네트워크 연결 유지 간격 - 현재 네트워크 조건에 따라 TCP 스택의 하위 수준 네트워크 구성 요소에 의해 유지 관리되는 내부 연결 유지 타이머를 나타냅니다. 이 값은 TCP 연결을 그대로 유지하기 위해 네트워크 중개자에서 필요한 값을 나타냅니다. 이러한 네트워크 중개인은 하드웨어 및 디바이스(예: 네트워크 프록시 및 네트워크 주소 변환기)를 나타냅니다. 이 값은 TCP 스택의 하위 수준 시스템 구성 요소에 의해 동적으로 결정되므로 네트워크 앱에서 이 값을 설정할 수 없습니다. 네트워크 연결 유지 간격의 내부 계산은 서버 연결 유지 간격을 고려합니다. 네트워크 앱은 ControlChannelTrigger 클래스에서 DecreaseNetworkKeepAliveInterval 메서드를 호출하여 설정된 TCP 연결을 정기적으로 삭제하는 경우 네트워크 연결 유지 타이머를 줄여야 함을 시스템에 나타낼 수 있습니다.
버전 기록
Windows 버전 | SDK 버전 | 추가된 값 |
---|---|---|
1607 | 14393 | IsWakeFromLowPowerSupported |
생성자
ControlChannelTrigger(String, UInt32) |
제어 채널 트리거 ID 및 서버 유지 간격에 대한 값을 사용하여 새 ControlChannelTrigger 개체를 만듭니다. 참고 ControlChannelTrigger 클래스는 Windows Phone 지원되지 않습니다. |
ControlChannelTrigger(String, UInt32, ControlChannelTriggerResourceType) |
컨트롤 채널 트리거 ID, 서버 연결 유지 간격 값 및 제어 채널 트리거에 요청된 리소스 유형을 사용하여 새 ControlChannelTrigger 개체를 만듭니다. 참고 ControlChannelTrigger 클래스는 Windows Phone 지원되지 않습니다. |
속성
ControlChannelTriggerId |
로컬 컴퓨터에서 다양한 제어 채널 트리거를 구분하는 데 사용할 수 있는 문자열을 가져옵니다. 참고 ControlChannelTrigger 클래스는 Windows Phone 지원되지 않습니다. |
CurrentKeepAliveIntervalInMinutes |
현재 네트워크 조건에 따라 TCP 스택의 하위 수준 네트워크 구성 요소에 의해 유지 관리되는 네트워크 유지 간격(분)을 가져옵니다. 참고 ControlChannelTrigger 클래스는 Windows Phone 지원되지 않습니다. |
IsWakeFromLowPowerSupported |
저전력 상태에서 절전 모드 해제가 지원되는지 여부를 나타내는 값을 가져옵니다. |
KeepAliveTrigger |
앱이 활성화 클래스를 백그라운드 브로커 인프라와 바인딩하는 데 사용해야 하는 ControlChannelTrigger 개체와 연결된 keep-alive 트리거를 나타내는 개체를 가져옵니다. 참고 ControlChannelTrigger 클래스는 Windows Phone 지원되지 않습니다. |
PushNotificationTrigger |
앱이 활성화 클래스를 백그라운드 브로커 인프라와 바인딩하는 데 사용해야 하는 ControlChannelTrigger 개체와 연결된 푸시 알림 트리거를 나타내는 개체를 가져옵니다. 참고 ControlChannelTrigger 클래스는 Windows Phone 지원되지 않습니다. |
ServerKeepAliveIntervalInMinutes |
시스템에 등록된 서버 연결 유지 간격(분)을 설정하거나 설정하여 사용된 앱 및 연결된 네트워크 연결이 절전 모드에서 해제되어야 하는 시기를 나타냅니다. 참고 ControlChannelTrigger 클래스는 Windows Phone 지원되지 않습니다. |
TransportObject |
ControlChannelTrigger 개체와 연결된 전송 연결에 시스템에서 사용하는 전송 개체를 가져옵니다. 참고 ControlChannelTrigger 클래스는 Windows Phone 지원되지 않습니다. |
메서드
Close() |
ControlChannelTrigger 개체를 닫습니다. 참고 이 메서드는 Windows Phone 지원되지 않습니다. |
DecreaseNetworkKeepAliveInterval() |
앱을 통해 시스템에서 네트워크 중간자에서 절전 모드 해제할 수 있는 네트워크 유지 간격이 너무 길어 축소되어야 함을 나타내는 방법을 제공합니다. 이 메서드는 Windows.Networking.Sockets 및 관련 네임스페이스의 클래스 요소에 적용됩니다. 참고 ControlChannelTrigger 클래스는 Windows Phone 지원되지 않습니다. |
Dispose() |
관리되지 않는 리소스의 확보, 해제 또는 다시 설정과 관련된 애플리케이션 정의 작업을 수행합니다. |
FlushTransport() |
ControlChannelTrigger와 연결된 전송 연결에서 사용하는 네트워킹 데이터를 네트워킹 스택으로 플러시합니다. 참고 ControlChannelTrigger 클래스는 Windows Phone 지원되지 않습니다. |
UsingTransport(Object) |
Windows.Networking.Sockets 및 관련 네임스페이스의 클래스 요소에 의해 제어 채널 트리거에서 사용할 전송 연결을 설정합니다. 참고 ControlChannelTrigger 클래스는 Windows Phone 지원되지 않습니다. |
WaitForPushEnabled() |
앱이 연결이 설정되었고 시스템이 제어 채널 트리거의 내부 구성을 완료해야 했음을 시스템에 알릴 수 있습니다. 참고 ControlChannelTrigger 클래스는 Windows Phone 지원되지 않습니다. |