Compartilhar via


Resolvedor peer

Para se conectar a uma malha, um nó par requer os endereços IP de outros nós. Os endereços IP são obtidos entrando em contato com um serviço resolvedor, que usa a ID da malha e retorna uma lista de endereços correspondentes a nós registrados com essa ID de malha específica. O resolvedor mantém uma lista de endereços registrados, que ele cria com cada nó no registro de malha com o serviço.

Você pode especificar qual serviço PeerResolver usar por meio da propriedade Resolver do NetPeerTcpBinding.

Resolvedores de pares compatíveis

O Peer Channel dá suporte a dois tipos de resolvedores: PNRP (Peer Name Resolution Protocol) e serviços de resolvedor personalizados.

Por padrão, o Canal par usa o serviço de resolvedor de pares PNRP para descoberta de pares e vizinhos na malha. Para situações/plataformas em que o PNRP não está disponível ou viável, o WCF (Windows Communication Foundation) fornece um serviço de descoberta alternativo baseado em servidor – o CustomPeerResolverService. Você também pode definir explicitamente um serviço de resolvedor personalizado escrevendo uma classe que implementa a IPeerResolverContract interface.

Protocolo PNRP (Peer Name Resolution Protocol)

O PNRP, o resolvedor padrão do Windows Vista, é um serviço de resolvedor de nomes distribuído e sem servidor. O PNRP também pode ser usado no Windows XP SP2 instalando o Pacote de Rede Avançado. Todos os dois clientes que executam a mesma versão do PNRP podem se localizar usando esse protocolo, desde que atendam a determinadas condições (como a falta de um firewall corporativo intervindo). Observe que a versão do PNRP que é fornecida com o Windows Vista é mais recente do que a versão incluída no Pacote de Rede Avançado. Verifique se há atualizações no PNRP para Windows XP SP2 no Centro de Download da Microsoft.

Serviços Personalizados de Resolução

Quando o serviço PNRP estiver indisponível ou você quiser um controle completo sobre a formatação de malha, você poderá usar um serviço de resolvedor personalizado baseado em servidor. Você pode definir explicitamente esse serviço escrevendo uma classe resolvedora implementando a IPeerResolverContract interface ou usando a implementação padrão in-box. CustomPeerResolverService

Sob a implementação padrão do serviço, os registros do cliente expiram após um determinado período de tempo se o cliente não atualizar explicitamente o registro. Os clientes que usam o serviço resolvedor devem estar cientes do limite superior na latência cliente-servidor para atualizar os registros com êxito a tempo. Isso envolve a escolha de um tempo limite de atualização apropriado (RefreshInterval) no serviço resolvedor. (Para obter mais informações, consulte Inside the CustomPeerResolverService: Client Registrations.)

O desenvolvedor de aplicativos também deve considerar a proteção da conexão entre clientes e o serviço de resolvedor personalizado. Você pode fazer isso usando as configurações de segurança no NetTcpBinding que os clientes usam para entrar em contato com o serviço de resolvedor. Você deve especificar credenciais (se usadas) no ChannelFactory usado para criar o Peer Channel. Essas credenciais são passadas para o ChannelFactory usado para criar canais para o resolvedor personalizado.

Observação

Ao usar redes locais e improvisadas com um resolvedor personalizado, é altamente recomendável que os aplicativos que usam ou dão suporte a redes locais ou improvisadas incluam lógica que seleciona um único endereço link-local a ser usado ao se conectar. Isso evita qualquer confusão potencialmente causada por computadores com vários endereços locais de link. De acordo com isso, o Peer Channel só dá suporte ao uso de um único endereço local de link a qualquer momento. Você pode especificar esse endereço com a propriedade ListenIpAddress no NetPeerTcpBinding.

Para obter uma demonstração de como implementar um resolvedor personalizado, consulte Peer Channel Custom Peer Resolver.

Nesta seção

Dentro do CustomPeerResolverService: Registros de Cliente

Consulte também