Compartilhar via


ControlChannelTrigger Classe

Definição

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
Object Platform::Object IInspectable ControlChannelTrigger
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:

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.

Aplica-se a

Confira também