Para consultar ou não poll (num contexto de serviços web)
-
22-07-2019 - |
Pergunta
Podemos usar pesquisa para descobrir sobre atualização de alguma fonte, por exemplo, clientes conectados a um servidor web. WCF fornece um recurso bacana na forma de contratos de tipo duplex, no qual, eu posso manter uma conexão para um cliente, e fazer invocações nessa conexão à vontade. Algumas espreitadelas no escritório estavam discutindo os méritos de ambas as soluções, e eu queria obter feedback sobre quando cada estratégia é melhor usado.
Solução
Gostaria de usar um mecanismo baseado em eventos em vez de voto. Em WCF, você pode fazer isso facilmente, seguindo o quadro Publish-Subscribe que Juval Lowy fornece em seu site, IDesign.net .
Outras dicas
Depende, em parte, de quantos usuários você tem.
Say você tem 1.000.000 usuários você terá problemas em manter que muitas sessões.
Mas se o seu sistema pode responder a 1000 poll solicita um segundo, em seguida, cada cliente pode pesquisar cada 1000 segundos.
Eu acho Shiraz pregado este, mas eu queria dizer mais duas coisas.
- Eu tive problemas com Duplex contratos. Você tem que ter todos seus patos em uma fileira com relação ao o canal de retorno ... você tem que verificá-lo para ter certeza que é aberta, etc. O IDesign.net coisas seria uma quantidade mínima de código de canalização você vai ter que incluir.
-
Se faz sentido para a sua solução (Isto só é apropriado em certas situações), o MSMQ ligação permite um cliente para enviar dados para um serviço de uma maneira assíncrona (como Duplex), mas o serviço não é "polling" para mensagens ... ele é notificado quando uma entra na fila através de alguns under-the-cobre encanamento.
Este tipo de forças que você gire o comunicação ao redor (cliente torna-se servidor, o servidor torna-se cliente), mas se a maioria da comunicação é unidirecional, isso daria um monte de benefícios. A outra vantagem aqui está, obviamente, a fila de espera comunicação - o servidor pode ser para baixo e não perca nenhuma mensagem ... ele vai pegar 'em up quando se trata de volta online.
Algo para pensar.