ControlChannelTrigger Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Permite que notificações em tempo real sejam recebidas em segundo plano para objetos que estabelecem uma conexão TCP e desejam ser notificados sobre o tráfego de entrada.
Chame **BackgroundExecutionManager.RequestAccessAsync** antes de usar ControlChannelTrigger.
Observação
Não há suporte para essa classe em 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
- Herança
- Atributos
- Implementações
Requisitos do Windows
Família de dispositivos |
Windows Desktop Extension SDK (introduzida na 10.0.10240.0)
Windows Mobile Extension SDK (introduzida na 10.0.10240.0) |
API contract |
Windows.Networking.Sockets.ControlChannelTriggerContract (introduzida na v1.0)
|
Comentários
A classe ControlChannelTrigger e as interfaces relacionadas são usadas para permitir que seu aplicativo use a rede quando seu aplicativo não for o aplicativo em primeiro plano. Um aplicativo Universal do Windows normalmente é suspenso quando não está mais no aplicativo em primeiro plano e movido para o segundo plano. Há algumas exceções para suspender um aplicativo (imprimir ativamente, acessar um fluxo de áudio e transferir arquivos em segundo plano, por exemplo). A classe ControlChannelTrigger permite que um aplicativo de rede que estabeleceu uma conexão TCP notifique o sistema de que uma conexão de rede estabelecida deve ser mantida operacional e o sistema deve ativar o aplicativo suspenso quando os dados de rede são recebidos para o aplicativo ou o intervalo de temporizador keep alive do servidor expira. Use gatilhos de canal de controle quando seu aplicativo precisar manter uma conexão de rede, mesmo que esteja em segundo plano.
Embora a classe ControlChannelTrigger possa ser usada com DatagramSocket, StreamSocket ou StreamSocketListener, o Windows 10 fornece um mecanismo aprimorado para aplicativos que usam essas classes e desejam manter conexões em segundo plano. Consulte Comunicações de rede em segundo plano para obter detalhes sobre SocketActivityTrigger e o agente de soquete.
A classe ControlChannelTrigger é recomendada para ser usada por instâncias do seguinte que estabelecem uma conexão TCP:
- A classe HttpClient no namespace Windows.Web.Http .
- As classes HttpClient e HttpClientHandler no namespace System.Net.Http no .NET Framework. Também há suporte para classes personalizadas derivadas dessas classes.
- A interface IXMLHTTPRequest2 . A interface IXMLHTTPRequest2 é uma extensão para o objeto XMLHttpRequest definido em vários rascunhos de trabalho publicados pelo World Wide Web Consortium (W3C)
Há vários tipos de intervalos keep alive que podem estar relacionados a aplicativos de rede. No nível mais baixo, um aplicativo pode definir uma opção keep alive TCP para enviar pacotes keep alive TCP entre um aplicativo cliente e um servidor para manter uma conexão TCP estabelecida que não está sendo usada. A classe HttpClient e o objeto JavaScript XMLHttpRequest não têm uma opção para habilitar o keep alive TCP e essa opção está desabilitada por padrão. O keep alive TCP deve ser desabilitado para usar a classe ControlChannelTrigger para dar suporte a notificações de rede em segundo plano.
No contexto da classe ControlChannelTrigger, há dois outros intervalos keep alive que têm um impacto.
- Intervalo de keep alive do servidor – refere-se a um intervalo keep alive em minutos que o aplicativo registra no sistema para saber com que frequência será acordado quando o aplicativo for suspenso. O sistema ativará o aplicativo com base no valor definido para esse intervalo keep alive. Esse valor é representado pela propriedade ServerKeepAliveIntervalInMinutes em uma classe ControlChannelTrigger e é definido como um argumento para o construtor ControlChannelTrigger. Esse valor é considerado um intervalo de keep alive do servidor, pois um aplicativo de rede normalmente pode definir isso com base no comportamento conhecido do servidor para o qual o aplicativo estabeleceu uma conexão TCP. Por exemplo, se souber que um servidor Web desconectará e removerá conexões TCP se não houver dados enviados pelo aplicativo por 30 minutos, o aplicativo de rede poderá definir esse intervalo de keep alive do servidor como 25 minutos.
- Intervalo keep alive de rede – refere-se a um temporizador keep alive interno mantido por componentes de rede de baixo nível na pilha TCP com base nas condições de rede atuais. Esse valor representa o valor necessário pelos intermediários de rede para manter a conexão TCP intacta. Esses intermediários de rede representam hardware e dispositivos, como proxies de rede e tradutores de endereços de rede. Um aplicativo de rede não pode definir esse valor, pois esse valor é determinado dinamicamente por componentes de sistema de baixo nível na pilha TCP. O cálculo interno do intervalo keep alive da rede leva em conta o intervalo keep alive do servidor. Um aplicativo de rede pode indicar ao sistema que o temporizador keep alive da rede deve ser reduzido se as conexões TCP estabelecidas forem descartadas regularmente chamando o método DecreaseNetworkKeepAliveInterval em uma classe ControlChannelTrigger.
Histórico de versão
Versão do Windows | Versão do SDK | Valor adicionado |
---|---|---|
1607 | 14393 | IsWakeFromLowPowerSupported |
Construtores
ControlChannelTrigger(String, UInt32) |
Cria um novo objeto ControlChannelTrigger com uma ID de gatilho de canal de controle e um valor para o intervalo keep alive do servidor. Observação Não há suporte para a classe ControlChannelTrigger em Windows Phone. |
ControlChannelTrigger(String, UInt32, ControlChannelTriggerResourceType) |
Cria um novo objeto ControlChannelTrigger com uma ID de gatilho de canal de controle, um valor para o intervalo keep alive do servidor e o tipo de recurso solicitado para o gatilho de canal de controle. Observação Não há suporte para a classe ControlChannelTrigger em Windows Phone. |
Propriedades
ControlChannelTriggerId |
Obtém uma cadeia de caracteres que pode ser usada para diferenciar vários gatilhos de canal de controle no computador local. Observação Não há suporte para a classe ControlChannelTrigger em Windows Phone. |
CurrentKeepAliveIntervalInMinutes |
Obtém o intervalo keep alive de rede, em minutos, mantido por componentes de rede de baixo nível na pilha TCP com base nas condições de rede atuais. Observação Não há suporte para a classe ControlChannelTrigger em Windows Phone. |
IsWakeFromLowPowerSupported |
Obtém um valor que indica se há suporte para a ativação de estados de baixa energia. |
KeepAliveTrigger |
Obtém um objeto que representa o gatilho keep alive associado ao objeto ControlChannelTrigger que um aplicativo deve usar para associar a classe de ativação à infraestrutura do agente em segundo plano. Observação Não há suporte para a classe ControlChannelTrigger em Windows Phone. |
PushNotificationTrigger |
Obtém um objeto que representa o gatilho de notificação por push associado ao objeto ControlChannelTrigger que um aplicativo deve usar para associar a classe de ativação à infraestrutura do agente em segundo plano. Observação Não há suporte para a classe ControlChannelTrigger em Windows Phone. |
ServerKeepAliveIntervalInMinutes |
Obtenha ou defina o intervalo keep alive do servidor, em minutos, registrado com o sistema para indicar quando o aplicativo e as conexões de rede associadas usadas devem ser ativadas. Observação Não há suporte para a classe ControlChannelTrigger em Windows Phone. |
TransportObject |
Obtém o objeto de transporte que o sistema está usando para a conexão de transporte associada ao objeto ControlChannelTrigger . Observação Não há suporte para a classe ControlChannelTrigger em Windows Phone. |
Métodos
Close() |
Fecha o objeto ControlChannelTrigger . Observação Não há suporte para esse método no Windows Phone. |
DecreaseNetworkKeepAliveInterval() |
Fornece uma maneira de um aplicativo indicar que o intervalo de keep alive da rede mantido pelo sistema com intermediários de rede para ativar era muito longo e deve ser reduzido. Esse método se aplica a elementos de classe em Windows.Networking.Sockets e namespaces relacionados. Observação Não há suporte para a classe ControlChannelTrigger em Windows Phone. |
Dispose() |
Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados. |
FlushTransport() |
Libera todos os dados de rede usados pela conexão de transporte associada ao ControlChannelTrigger para a pilha de rede. Observação Não há suporte para a classe ControlChannelTrigger em Windows Phone. |
UsingTransport(Object) |
Define a conexão de transporte a ser usada por um gatilho de canal de controle por elementos de classe no Windows.Networking.Sockets e namespaces relacionados. Observação Não há suporte para a classe ControlChannelTrigger em Windows Phone. |
WaitForPushEnabled() |
Permite que um aplicativo notifique o sistema de que uma conexão foi estabelecida e que o sistema deve concluir a configuração interna do gatilho do canal de controle. Observação Não há suporte para a classe ControlChannelTrigger em Windows Phone. |