ControlChannelTrigger クラス

定義

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
継承
Object Platform::Object IInspectable ControlChannelTrigger
属性
実装

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 インターフェイスは、World Wide Web Consortium (W3C) によって発行されたいくつかの作業ドラフトで定義されている XMLHttpRequest オブジェクトの拡張機能です。

ネットワーク アプリに関連するキープアライブ間隔には、いくつかの種類があります。 最も低いレベルでは、アプリは TCP キープアライブ オプションを設定して、クライアント アプリとサーバーの間で TCP キープアライブ パケットを送信し、使用されていない確立された TCP 接続を維持できます。 HttpClient クラスと XMLHttpRequest JavaScript オブジェクトには、TCP キープアライブを有効にするオプションがないため、このオプションは既定で無効になっています。 ControlChannelTrigger クラスを使用してバックグラウンド ネットワーク通知をサポートするには、TCP キープアライブを無効にする必要があります。

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

  • サーバーのキープアライブ間隔 - これは、アプリが中断されたときに起動される頻度について、アプリがシステムに登録するキープアライブ間隔 (分) を指します。 システムは、このキープアライブ間隔に設定された値に基づいてアプリをウェイクアップします。 この値は、ControlChannelTrigger クラスの ServerKeepAliveIntervalInMinutes プロパティによって表され、ControlChannelTrigger コンストラクターの引数として設定されます。 ネットワーク アプリは通常、アプリが TCP 接続を確立したサーバーの既知の動作に基づいてこれを設定する可能性があるため、この値はサーバーのキープアライブ間隔と見なされます。 たとえば、アプリから 30 分間送信されたデータがない場合、Web サーバーが 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 オブジェクトに関連付けられているキープアライブ トリガーを表す オブジェクトを取得します。

注意

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 に関連付けられているトランスポート接続で使用されるすべてのネットワーク データをネットワーク スタックにフラッシュします。

Note

controlChannelTrigger クラスは、Windows Phoneではサポートされていません。

UsingTransport(Object)

Windows.Networking.Sockets および関連する名前空間のクラス要素によって、コントロール チャネル トリガーによって使用されるトランスポート接続を設定します。

注意

controlChannelTrigger クラスは、Windows Phoneではサポートされていません。

WaitForPushEnabled()

接続が確立され、システムが制御チャネル トリガーの内部構成を完了する必要があることを、アプリがシステムに通知できるようにします。

注意

controlChannelTrigger クラスは、Windows Phoneではサポートされていません。

適用対象

こちらもご覧ください