Usuário com melhor resposta
Comunicação servidor para cliente

Pergunta
-
Pessoal,
Sou novo com WCF, e estou com um dúvida.
Trabalho muito com Socket, e agora resolvi desenvolver um projeto com WCF. Sempre que eu vejo exemplos é o cliente consumindo o serviço. Mas a minha realidade aqui é outra onde o Serviço tem que enviar uma informação para o Cliente.
É possível fazer em WCF?
Alguém poderia me ajudar?
Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
Respostas
-
Boas Henrique,
Na verdade, o que você precisa fazer no teu serviço são dois métodos: Subscribe e Unsubscribe. Onde o primeiro você se vincula as notificações, e o segundo você se desconecta, ou seja, não está mais interessado em receber as notificações do serviço.
Internamente, o WCF irá fazer o processamento que desejar, e se necessário, invocará os callbacks dos clientes que estão armazenados.
http://www.israelaece.com- Marcado como Resposta Henrique SJ Rio Preto quarta-feira, 17 de março de 2010 13:20
Todas as Respostas
-
Boas Henrique,
Se entendi bem, é só você inverter. :)
Mas olha, se você quer ter a possibilidade do seu serviço notificar os clientes de que algo aconteceu, então de uma olhada nos callbacks: http://www.israelaece.com/post/WCF-Tipos-de-Mensagens.aspx.
Se preferir, no video sobre Tipos de Mensagens, eu também comento sobre eles: http://www.israelaece.com/post/WCF-Videos.aspx
http://www.israelaece.com- Sugerido como Resposta AndreAlvesLimaModerator quarta-feira, 17 de março de 2010 12:04
-
Israel, tudo beleza? Aqui é o Henrique de São José do Rio Preto (SENAC).
Você diz inverter... o cliente ser um serviço e serviço ser um cliente?
Na verdade o que eu preciso é assim, o cliente fica conectado o tempo todo com o Serviço, quando o serviço tem alguma coisa nova para esse cliente, ele envia a informação.
Como se fosse um Socket, servidor x cliente que fica o tempo todo conectado. Assim quando preciso fazer algo no cliente, envio uma informação através do servidor.
Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta! -
Boas Henrique,
Suspeitei que fosse você. ;)
Com relação ao teu problema, tente olhar os callbacks. Deve ser isso que precisa.
http://www.israelaece.com -
Israel,
Eu dei uma olhada nos callbacks... No caso do one-way, o cliente envia uma requisição... e quando o servidor faz a operação ele devolve.
Mas olha meu caso, eu não sei quando o servidor vai falar com o cliente.
Imagine assim:
Você tem uma interface WEB, ai um determinado usuário acessa a WEB e altera um Status (campo do banco de dados) de 1 para 3. Aí imagine que eu tenha um timer na aplicação que de 5 em 5 minutos verifica o campo Status os registros que estão como 3. Daí eu tenho que saber de qual cliente é esse registro e enviar uma mensagem para esse cliente.
Um cenário com Socket.
- Ativo o servidor que fica escutando a porta 1000
- O cliente se conecta no porta 1000.
- Quando o cliente se conecta eu tenho o IP dele.
- Quando o status altera para 3 eu pego o IP daquele cliente alterado e envio um caracter, exemplo @
- O cliente recebe o @ e já sabe o que tem que fazer...
Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta! -
Boas Henrique,
Na verdade, o que você precisa fazer no teu serviço são dois métodos: Subscribe e Unsubscribe. Onde o primeiro você se vincula as notificações, e o segundo você se desconecta, ou seja, não está mais interessado em receber as notificações do serviço.
Internamente, o WCF irá fazer o processamento que desejar, e se necessário, invocará os callbacks dos clientes que estão armazenados.
http://www.israelaece.com- Marcado como Resposta Henrique SJ Rio Preto quarta-feira, 17 de março de 2010 13:20
-