Partager via


ControlChannelTrigger Classe

Définition

Permet de recevoir des notifications en temps réel en arrière-plan pour les objets qui établissent une connexion TCP et souhaitent être avertis du trafic entrant.

Appelez **BackgroundExecutionManager.RequestAccessAsync** avant d’utiliser ControlChannelTrigger.

Notes

Cette classe n’est pas prise en charge sur 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
Héritage
Object Platform::Object IInspectable ControlChannelTrigger
Attributs
Implémente

Configuration requise pour Windows

Famille d’appareils
Windows Desktop Extension SDK (introduit dans 10.0.10240.0)
Windows Mobile Extension SDK (introduit dans 10.0.10240.0)
API contract
Windows.Networking.Sockets.ControlChannelTriggerContract (introduit dans v1.0)

Remarques

La classe ControlChannelTrigger et les interfaces associées sont utilisées pour permettre à votre application d’utiliser le réseau lorsque votre application n’est pas l’application de premier plan. Une application Windows universelle est normalement suspendue lorsqu’elle n’est plus dans l’application de premier plan et déplacée vers l’arrière-plan. Il existe quelques exceptions à la suspension d’une application (impression active, accès à un flux audio et transfert de fichiers en arrière-plan, par exemple). La classe ControlChannelTrigger permet à une application réseau qui a établi une connexion TCP d’informer le système qu’une connexion réseau établie doit être maintenue opérationnelle et que le système doit mettre en éveil l’application suspendue lorsque des données réseau sont reçues pour l’application ou que l’intervalle du minuteur de conservation du serveur expire. Utilisez des déclencheurs de canal de contrôle lorsque votre application a besoin de maintenir une connexion réseau même si elle se trouve en arrière-plan.

Bien que la classe ControlChannelTrigger puisse être utilisée avec DatagramSocket, StreamSocket ou StreamSocketListener, Windows 10 fournit un mécanisme amélioré pour les applications qui utilisent ces classes et souhaitent maintenir les connexions en arrière-plan. Pour plus d’informations sur SocketActivityTrigger et le répartiteur de socket, consultez Communications réseau en arrière-plan.

Il est recommandé d’utiliser la classe ControlChannelTrigger par les instances des éléments suivants qui établissent une connexion TCP :

Il existe plusieurs types d’intervalles de conservation en vie qui peuvent être liés aux applications réseau. Au niveau le plus bas, une application peut définir une option de conservation TCP pour envoyer des paquets tcp keep-alive entre une application cliente et un serveur afin de maintenir une connexion TCP établie qui n’est pas utilisée. La classe HttpClient et l’objet JavaScript XMLHttpRequest n’ont pas d’option pour activer tcp keep-alive et cette option est désactivée par défaut. La conservation TCP doit être désactivée pour pouvoir utiliser la classe ControlChannelTrigger pour prendre en charge les notifications réseau en arrière-plan.

Dans le contexte de la classe ControlChannelTrigger, il existe deux autres intervalles de conservation qui ont un impact.

  • Intervalle de conservation du serveur : il s’agit d’un intervalle de conservation en durée de vie en minutes que l’application inscrit auprès du système pour connaître la fréquence à laquelle être réveillée lorsque l’application a été suspendue. Le système réveille l’application en fonction de la valeur définie pour cet intervalle de conservation. Cette valeur est représentée par la propriété ServerKeepAliveIntervalInMinutes sur une classe ControlChannelTrigger et est définie en tant qu’argument du constructeur ControlChannelTrigger. Cette valeur est considérée comme un intervalle de conservation du serveur, car une application réseau peut normalement le définir en fonction du comportement connu du serveur sur lequel l’application a établi une connexion TCP. Par exemple, s’il est connu qu’un serveur web déconnecte et supprime les connexions TCP si aucune donnée n’est envoyée par l’application pendant 30 minutes, l’application réseau peut définir cet intervalle de conservation du serveur sur 25 minutes.
  • Intervalle de conservation du réseau : il s’agit d’un minuteur de conservation interne géré par des composants réseau de bas niveau dans la pile TCP en fonction des conditions réseau actuelles. Cette valeur représente la valeur requise par les intermédiaires réseau pour conserver la connexion TCP intacte. Ces intermédiaires réseau représentent du matériel et des appareils tels que les proxys réseau et les traducteurs d’adresses réseau. Une application réseau ne peut pas définir cette valeur, car cette valeur est déterminée dynamiquement par les composants système de bas niveau dans la pile TCP. Le calcul interne de l’intervalle de conservation du réseau prend en compte l’intervalle de conservation du serveur. Une application réseau peut indiquer au système que le minuteur de maintien en vie du réseau doit être diminué si les connexions TCP établies sont régulièrement supprimées en appelant la méthode DecreaseNetworkKeepAliveInterval sur une classe ControlChannelTrigger.

Historique des versions

Version de Windows Version du SDK Valeur ajoutée
1607 14393 IsWakeFromLowPowerSupported

Constructeurs

ControlChannelTrigger(String, UInt32)

Crée un objet ControlChannelTrigger avec un ID de déclencheur de canal de contrôle et une valeur pour l’intervalle de conservation du serveur.

Notes

La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone.

ControlChannelTrigger(String, UInt32, ControlChannelTriggerResourceType)

Crée un objet ControlChannelTrigger avec un ID de déclencheur de canal de contrôle, une valeur pour l’intervalle de conservation du serveur et le type de ressource demandé pour le déclencheur de canal de contrôle.

Notes

La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone.

Propriétés

ControlChannelTriggerId

Obtient une chaîne qui peut être utilisée pour différencier différents déclencheurs de canal de contrôle sur l’ordinateur local.

Notes

La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone.

CurrentKeepAliveIntervalInMinutes

Obtient l’intervalle de conservation du réseau, en minutes, géré par les composants réseau de bas niveau dans la pile TCP en fonction des conditions réseau actuelles.

Notes

La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone.

IsWakeFromLowPowerSupported

Obtient une valeur indiquant si la sortie d’états de faible puissance est prise en charge.

KeepAliveTrigger

Obtient un objet qui représente le déclencheur keep-alive associé à l’objet ControlChannelTrigger qu’une application doit utiliser pour lier la classe d’activation à l’infrastructure broker en arrière-plan.

Notes

La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone.

PushNotificationTrigger

Obtient un objet qui représente le déclencheur de notification Push associé à l’objet ControlChannelTrigger qu’une application doit utiliser pour lier la classe d’activation à l’infrastructure broker en arrière-plan.

Notes

La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone.

ServerKeepAliveIntervalInMinutes

Obtenez ou définissez l’intervalle de conservation du serveur, en minutes, inscrit auprès du système pour indiquer quand l’application et les connexions réseau associées utilisées doivent se réveiller.

Notes

La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone.

TransportObject

Obtient l’objet de transport que le système utilise pour la connexion de transport associée à l’objet ControlChannelTrigger .

Notes

La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone.

Méthodes

Close()

Ferme l’objet ControlChannelTrigger .

Notes

Cette méthode n’est pas prise en charge sur Windows Phone.

DecreaseNetworkKeepAliveInterval()

Fournit un moyen pour une application d’indiquer que l’intervalle de maintien en vie du réseau géré par le système avec des intermédiaires réseau pour se réveiller était trop long et devrait être réduit. Cette méthode s’applique aux éléments de classe dans Windows.Networking.Sockets et les espaces de noms associés.

Notes

La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone.

Dispose()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.

FlushTransport()

Vide toutes les données réseau utilisées par la connexion de transport associée à ControlChannelTrigger dans la pile réseau.

Notes

La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone.

UsingTransport(Object)

Définit la connexion de transport à utiliser par un déclencheur de canal de contrôle par les éléments de classe dans Windows.Networking.Sockets et les espaces de noms associés.

Notes

La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone.

WaitForPushEnabled()

Permet à une application d’informer le système qu’une connexion a été établie et que le système doit terminer la configuration interne du déclencheur de canal de contrôle.

Notes

La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone.

S’applique à

Voir aussi