ControlChannelTrigger Clase

Definición

Permite recibir notificaciones en tiempo real en segundo plano para los objetos que establecen una conexión TCP y desean recibir notificaciones del tráfico entrante.

Llame a **BackgroundExecutionManager.RequestAccessAsync** antes de usar ControlChannelTrigger.

Nota

Esta clase no se admite en 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
Herencia
Object Platform::Object IInspectable ControlChannelTrigger
Atributos
Implementaciones

Requisitos de Windows

Familia de dispositivos
Windows Desktop Extension SDK (se introdujo en la versión 10.0.10240.0)
Windows Mobile Extension SDK (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Networking.Sockets.ControlChannelTriggerContract (se introdujo en la versión v1.0)

Comentarios

La clase ControlChannelTrigger y las interfaces relacionadas se usan para permitir que la aplicación use la red cuando la aplicación no sea la aplicación en primer plano. Normalmente, una aplicación universal de Windows se suspende cuando ya no está en primer plano y se mueve al fondo. Hay algunas excepciones para suspender una aplicación (imprimir activamente, acceder a una secuencia de audio y transferir archivos en segundo plano, por ejemplo). La clase ControlChannelTrigger permite que una aplicación de red que haya establecido una conexión TCP notifique al sistema que se debe mantener operativa una conexión de red establecida y que el sistema debe reactivar la aplicación suspendida cuando se reciben los datos de red para la aplicación o el intervalo del temporizador de mantenimiento del servidor expira. Usa desencadenadores de canal de control cuando la aplicación necesite mantener una conexión de red incluso si está en segundo plano.

Aunque la clase ControlChannelTrigger se puede usar con DatagramSocket, StreamSocket o StreamSocketListener, Windows 10 proporciona un mecanismo mejorado para las aplicaciones que usan esas clases y desean mantener las conexiones en segundo plano. Consulte Comunicaciones de red en segundo plano para obtener más información sobre SocketActivityTrigger y el agente de sockets.

Se recomienda usar la clase ControlChannelTrigger por las instancias de lo siguiente que establecen una conexión TCP:

Hay varios tipos de intervalos de mantenimiento activo que pueden relacionarse con las aplicaciones de red. En el nivel más bajo, una aplicación puede establecer una opción tcp keep-alive para enviar paquetes TCP keep-alive entre una aplicación cliente y un servidor para mantener una conexión TCP establecida que no se está usando. La clase HttpClient y el objeto JavaScript XMLHttpRequest no tienen una opción para habilitar tcp keep-alive y esta opción está deshabilitada de forma predeterminada. El tcp keep-alive debe estar deshabilitado para poder usar la clase ControlChannelTrigger para admitir notificaciones de red en segundo plano.

En el contexto de la clase ControlChannelTrigger, hay otros dos intervalos de mantenimiento activo que tienen un impacto.

  • Intervalo de mantenimiento activo del servidor: esto hace referencia a un intervalo de mantenimiento activo en minutos que la aplicación se registra en el sistema para saber con qué frecuencia se reactiva cuando se ha suspendido la aplicación. El sistema reactivará la aplicación en función del valor establecido para este intervalo de mantenimiento activo. Este valor se representa mediante la propiedad ServerKeepAliveIntervalInMinutes en una clase ControlChannelTrigger y se establece como argumento para el constructor ControlChannelTrigger. Este valor se considera un intervalo de mantenimiento del servidor, ya que una aplicación de red normalmente podría establecerlo en función del comportamiento conocido del servidor en el que la aplicación ha establecido una conexión TCP. Por ejemplo, si se sabe que un servidor web desconectará y quitará las conexiones TCP si no hay datos enviados por la aplicación durante 30 minutos, la aplicación de red podría establecer este intervalo de mantenimiento del servidor en 25 minutos.
  • Intervalo de mantenimiento de red: esto hace referencia a un temporizador interno de mantenimiento persistente mantenido por componentes de red de bajo nivel en la pila TCP en función de las condiciones de red actuales. Este valor representa el valor que necesitan los intermediarios de red para mantener intacta la conexión TCP. Estos intermediarios de red representan hardware y dispositivos, como servidores proxy de red y traductores de direcciones de red. Una aplicación de red no puede establecer este valor, ya que los componentes del sistema de bajo nivel determinan dinámicamente este valor en la pila TCP. El cálculo interno del intervalo de conexión de red tiene en cuenta el intervalo de mantenimiento de mantenimiento del servidor. Una aplicación de red puede indicar al sistema que el temporizador de conexión de red debe reducirse si las conexiones TCP establecidas se quitan regularmente llamando al método DecreaseNetworkKeepAliveInterval en una clase ControlChannelTrigger.

Historial de versiones

Versión de Windows Versión del SDK Valor agregado
1607 14393 IsWakeFromLowPowerSupported

Constructores

ControlChannelTrigger(String, UInt32)

Crea un nuevo objeto ControlChannelTrigger con un identificador de desencadenador de canal de control y un valor para el intervalo keep-alive del servidor.

Nota

La clase ControlChannelTrigger no se admite en Windows Phone.

ControlChannelTrigger(String, UInt32, ControlChannelTriggerResourceType)

Crea un nuevo objeto ControlChannelTrigger con un identificador de desencadenador de canal de control, un valor para el intervalo keep-alive del servidor y el tipo de recurso solicitado para el desencadenador del canal de control.

Nota

La clase ControlChannelTrigger no se admite en Windows Phone.

Propiedades

ControlChannelTriggerId

Obtiene una cadena que se puede usar para diferenciar varios desencadenadores de canal de control en el equipo local.

Nota

La clase ControlChannelTrigger no se admite en Windows Phone.

CurrentKeepAliveIntervalInMinutes

Obtiene el intervalo de conexión de red, en minutos, mantenido por componentes de red de bajo nivel en la pila TCP en función de las condiciones de red actuales.

Nota

La clase ControlChannelTrigger no se admite en Windows Phone.

IsWakeFromLowPowerSupported

Obtiene un valor que indica si se admite la reactivación de estados de poca potencia.

KeepAliveTrigger

Obtiene un objeto que representa el desencadenador keep-alive asociado al objeto ControlChannelTrigger que una aplicación debe usar para enlazar la clase de activación con la infraestructura del agente en segundo plano.

Nota

La clase ControlChannelTrigger no se admite en Windows Phone.

PushNotificationTrigger

Obtiene un objeto que representa el desencadenador de notificación de inserción asociado al objeto ControlChannelTrigger que una aplicación debe usar para enlazar la clase de activación con la infraestructura del agente en segundo plano.

Nota

La clase ControlChannelTrigger no se admite en Windows Phone.

ServerKeepAliveIntervalInMinutes

Obtiene o establece el intervalo keep-alive del servidor, en minutos, registrado con el sistema para indicar cuándo se deben reactivar la aplicación y las conexiones de red asociadas usadas.

Nota

La clase ControlChannelTrigger no se admite en Windows Phone.

TransportObject

Obtiene el objeto de transporte que usa el sistema para la conexión de transporte asociada al objeto ControlChannelTrigger .

Nota

La clase ControlChannelTrigger no se admite en Windows Phone.

Métodos

Close()

Cierra el objeto ControlChannelTrigger .

Nota

Este método no se admite en Windows Phone.

DecreaseNetworkKeepAliveInterval()

Proporciona una manera de que una aplicación indique que el intervalo de mantenimiento de la red mantenido por el sistema con intermediarios de red para reactivarse era demasiado largo y debería reducirse. Este método se aplica a los elementos de clase de los espacios de nombres Windows.Networking.Sockets y relacionados.

Nota

La clase ControlChannelTrigger no se admite en Windows Phone.

Dispose()

Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados.

FlushTransport()

Vacía los datos de red utilizados por la conexión de transporte asociada a ControlChannelTrigger en la pila de redes.

Nota

La clase ControlChannelTrigger no se admite en Windows Phone.

UsingTransport(Object)

Establece la conexión de transporte que va a usar un desencadenador de canal de control por elementos de clase en los espacios de nombres Windows.Networking.Sockets y relacionados.

Nota

La clase ControlChannelTrigger no se admite en Windows Phone.

WaitForPushEnabled()

Permite a una aplicación notificar al sistema que se ha establecido una conexión y que el sistema debe completar la configuración interna del desencadenador del canal de control.

Nota

La clase ControlChannelTrigger no se admite en Windows Phone.

Se aplica a

Consulte también