ControlChannelTrigger Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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:
- La clase HttpClient del espacio de nombres Windows.Web.Http .
- Las clases HttpClient y HttpClientHandler del espacio de nombres System.Net.Http de .NET Framework. También se admiten las clases personalizadas que derivan de estas clases.
- Interfaz IXMLHTTPRequest2 . La interfaz IXMLHTTPRequest2 es una extensión del objeto XMLHttpRequest definido en varios borradores de trabajo publicados por World Wide Web Consortium (W3C)
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. |