ControlChannelTrigger Class

Windows.Networking.Sockets 名前空間内のクラス要素およびその他のネットワーク トランスポートに関するリアルタイム通知をバックグラウンドで受信できるようにします。

構文


public sealed class ControlChannelTrigger : IDisposable

属性

[MarshalingBehavior(Agile)]
[Threading(MTA)]
[Version(0x06020000)]
[WebHostHidden()]

メンバー

ControlChannelTriggerクラス には次の種類のメンバーがあります。

コンストラクター

ControlChannelTriggerクラス にはこれらのコンストラクターがあります。

コンストラクター説明
ControlChannelTrigger(String, UInt32) Creates a new ControlChannelTrigger object with a control channel trigger ID and a value for the server keep-alive interval.
ControlChannelTrigger(String, UInt32, ControlChannelTriggerResourceType) Creates a new ControlChannelTrigger object with a control channel trigger ID, a value for the server keep-alive interval, and the resource type requested for the control channel trigger.

 

メソッド

The ControlChannelTrigger クラス には次のメソッドがあります。 また、以下からもメソッドが継承されます。Object クラス.

メソッド説明
Close [C++]Closes the ControlChannelTrigger object.
DecreaseNetworkKeepAliveInterval Provides a way for an app to indicate that the network keep-alive interval maintained by the system with network intermediaries to wake up was too long and should be decreased. This method applies to class elements in the Windows.Networking.Sockets and related namespaces.
Dispose [C#, VB]Performs tasks associated with freeing, releasing, or resetting unmanaged resources.
FlushTransport Flushes any networking data used by the transport connection associated with the ControlChannelTrigger to the networking stack.
UsingTransport Sets the transport connection to be used by a control channel trigger by class elements in the Windows.Networking.Sockets and related namespaces.
WaitForPushEnabled Allows an app to notify the system that a connection has been established and the system should complete the internal configuration of the control channel trigger.

 

プロパティ

ControlChannelTriggerクラス には次のプロパティがあります。

プロパティアクセスの種類説明

ControlChannelTriggerId

読み取り専用Gets a string that can be used to differentiate various control channel triggers on the local computer.

CurrentKeepAliveIntervalInMinutes

読み取り専用Gets the network keep-alive interval, in minutes, maintained by low-level network components in the TCP stack based on current network conditions.

KeepAliveTrigger

読み取り専用Gets an object that represents the keep-alive trigger associated with the ControlChannelTrigger object that an app should use to bind the activation class with the background broker infrastructure.

PushNotificationTrigger

読み取り専用Gets an object that represents the push notification trigger associated with the ControlChannelTrigger object that an app should use to bind the activation class with the background broker infrastructure.

ServerKeepAliveIntervalInMinutes

読み取り/書き込みGet or set the server keep-alive interval, in minutes, registered with the system to indicate when the app and associated network connections used should wake up.

TransportObject

読み取り専用Gets the transport object that the system is using for the transport connection associated with the ControlChannelTrigger object.

 

解説

ControlChannelTrigger クラスと関連インターフェイスは、Windows.Networking.Sockets と関連名前空間のクラス要素に対し、リアルタイムのネットワーク状態とトリガーを有効にするために使用されます。コントロール チャネル トリガーは、ネットワークとシステム リソースの使用を最小限に抑えるために、長時間実行されるネットワーク アプリケーション (実行されたままの電子メール アプリケーションなど) で使用されます。ネットワーク トリガーにより、アプリケーションをある期間低電力モードに下げ、確立されたネットワーク接続を維持し、低電力状態で操作することができます。アプリケーションは、アプリケーションが起動する必要があるときにシステムによって使用されるサーバーのキープアライブ間隔を設定できます。アプリケーションは、このアプリケーションのシステムがネットワーク データを受信すると起動するようにトリガーを設定することもできます。これらの機能は、一般的にバッテリ残量を延長するために、モバイル デバイスを対象とした長時間実行されるネットワーク アプリケーションで使用されます。

通常、Windows 8 用の Windows ストア アプリは、前面で表示されなくなり背景に移動すると中断します。アプリケーションの中断には、いくつかの例外があります (アクティブな印刷、オーディオ ストリームへのアクセス、バックグラウンドでのファイル転送など)。ControlChannelTrigger クラスを使用すると、TCP 接続を確立したネットワーク アプリケーションは、確立されたネットワーク接続を機能したままにし、アプリケーションに対してネットワーク データを受信したとき、またはサーバーのキープアライブ タイマー間隔が時間切れになったとき、中断されたアプリケーションを起動するようにシステムに通知できるようになります。

ControlChannelTrigger クラスは、TCP 接続を確立するために Windows.Networking.Sockets の次のインスタンスによって使用されます。

ControlChannelTrigger クラスは、TCP 接続を確立するために次のインスタンスによっても使用されます。

  • .NET Framework 4.5 の System.Net.Http 名前空間の HttpClient クラスおよび HttpClientHandler クラス。これらのクラスから派生するカスタム クラスもサポートされています。
  • IXMLHTTPRequest2 インターフェイス。IXMLHTTPRequest2 インターフェイスは、World Wide Web Consortium (W3C) が発行した複数の動作ドラフトで定義されている XMLHttpRequest のオブジェクトに対する拡張機能です。

メモ  ControlChannelTrigger クラスは、JavaScript を使用する Windows ストア アプリケーションではサポートされません。

ネットワーク アプリケーションには、数種類のキープアライブ間隔が関係している可能性があります。最も低いレベルで、アプリケーションは、確立された TCP 接続で使用されていないものを維持するために、クライアント アプリケーションとサーバー間に TCP キープアライブ パケットを送信するように TCP キープアライブのオプションを設定します。StreamSocketControl クラスの KeepAlive プロパティを使用すると、アプリケーションでは、StreamSocket に対してこの TCP keep-alive オプションを有効または無効にすることができます。StreamSocket の既定の動作は、TCP のキープアライブの無効化です。MessageWebSocketStreamSocketListener、および StreamWebSocket クラスには TCP keep-alive を有効にするオプションがないため、このオプションは既定では無効になっています。同様に、HttpClient クラスと XMLHttpRequest JavaScript オブジェクトには TCP keep-alive を有効にするオプションがないため、このオプションは既定では無効になっています。TCP のキープアライブは、ControlChannelTrigger クラスを使用してバックグラウンド ネットワーク通知をサポートするために、無効にする必要があります。

ControlChannelTrigger クラスのコンテキストでは、影響を与える 2 つのキープアライブ間隔があります。

  • サーバーのキープアライブ間隔 - これは、アプリケーションが中断されると、アプリケーションが作動する頻度に関するシステムに登録するキープアライブ間隔 (分単位) を示します。このキープアライブ間隔の設定値に基づいて、システムによりアプリケーションが起動されます。この値は、ControlChannelTrigger クラスの ServerKeepAliveIntervalInMinutes プロパティによって表され、新しい ControlChannelTrigger インスタンスを初期化するためコンストラクターによって設定されます。この値はサーバーの keep-alive 間隔と見なされます。これは、ネットワーク アプリケーションは通常、アプリケーションが TCP 接続を確立したサーバーの既知の動作に基づいてこれを設定する可能性があるためです。 たとえば、アプリケーションが送信したデータが 30 分間ない場合に Web サーバーが接続を切断し TCP 接続を解除することがわかっている場合、ネットワーク アプリケーションは、このサーバーのキープアライブ間隔を 25 分に設定できます。
  • ネットワークのキープアライブ間隔 - 現在のネットワークの状態に基づいて TCP スタックの低レベル ネットワーク コンポーネントによって維持される内部のキープアライブ タイマーを参照します。この値は、TCP 接続をそのまま保持するためにネットワーク仲介者に必要とされる値を表します。これらのネットワークの媒介手段は、ネットワーク プロキシやネットワーク アドレス変換器などのハードウェアおよびデバイスを表します。この値は TCP スタックの低レベルのシステム コンポーネントによって動的に決定されるため、ネットワーク アプリケーションがこの値を設定することはできません。ネットワークのキープアライブ間隔の内部計算は、サーバーのキープアライブ間隔を考慮します。ネットワーク アプリケーションは、ControlChannelTrigger クラスで DecreaseNetworkKeepAliveInterval メソッドが呼び出されることによって確立された TCP 接続が定期的に切断される場合、ネットワーク キープアライブ タイマーを小さくする必要があることをシステムに対して示すことができます。

要件

最小限サポートされるクライアント

Windows 8 [Windows ストア アプリのみ]

最小限サポートされるサーバー

Windows Server 2012 [Windows ストア アプリのみ]

名前空間

Windows.Networking.Sockets
Windows::Networking::Sockets [C++]

メタデータ

Windows.winmd

DLL

Windows.Networking.Sockets.Pushenabledapplication.dll

参照

その他のリソース
Web サービスへの接続
ネットワーク サービスへの接続
WebSocket サービスへの接続
バックグラウンド接続のオプションを設定する方法
ネットワーク接続のトラブルシューティングおよびデバッグ
参照
HttpClient
HttpClientHandler
IXMLHTTPRequest2
MessageWebSocket
IClosable
Object
StreamSocket
StreamWebSocket
System.Net.Http
サンプル
バックグラウンド タスクのサンプル
ControlChannelTrigger HttpClient サンプル
ControlChannelTrigger IXMLHTTPRequest2 サンプル
ControlChannelTrigger StreamSocket サンプル
ControlChannelTrigger StreamWebSocket サンプル

 

 

表示:
© 2015 Microsoft