2013-08-01 3 views
12

Sto sviluppando un'applicazione desktop utilizzando C#, che comunica con un server su un servizio Web WCF. Dovrebbe essere una sorta di applicazione di sincronizzazione. Ciò significa che quando apporto alcune modifiche all'app client dovrei aggiornare immediatamente anche il server (questo è facile usando le chiamate di servizio), ma anche questo meccanismo dovrebbe essere fornito viceversa, una modifica sul server deve essere immediatamente applicata su diversi client. So che posso effettuare il polling sul mio server, ma questo non mi sembra accurato, e ho anche sentito parlare di servizi duplex, ma non sono sicuro di poterlo utilizzare per implementare questo meccanismo.Meccanismo di notifica push tra un server e un'app client

Sto chiedendo alcuni suggerimenti su questo problema. Grazie in anticipo.

+1

controllo http://signalr.net/ controllo l'uso del browser il suo fronte alla vostra richiesta ... spero che questo aiuto si ... –

+3

WCF servizi duplex si adatta alle vostre esigenze. Date un'occhiata qui: http://www.codeproject.com/Articles/491844/A-Beginners-Guide-to-Duplex-WCF –

+0

sei sicuro che signalr.net soddisfa i miei requisiti? Perché sto scrivendo un'applicazione desktop, ma questo sembra funzionare solo sul web? Ho sbagliato? –

risposta

7

È necessario implementare un progetto di pubblicazione e sottoscrizione. In WCF è possibile utilizzare il protocollo net-tcp per connettersi in client e server duplex.

È possibile scaricare una discreta implementazione su http://www.idesign.net/Downloads/GetDownload/2032

E troverete un buon articolo here.

saluti

2

Tolga, è possibile utilizzare WinForms con signalR, lato server può essere asp.net o un'applicazione Windows standalone ..

+0

Grazie amico, controllerò la cosa signalR. L'ho sentito, ma ho pensato che funzioni solo con le applicazioni web, se è supportato anche in winform, potrebbe davvero essere un'alternativa ai servizi duplex. –

1

PushSharp: Una libreria lato server per l'invio di notifiche Push per i client (i client sono fondamentalmente dispositivi mobili, ma possono anche essere personalizzati)! Puoi anche fare un po 'di tutorial su PushSharp.

0
 var webAddr = "https://fcm.googleapis.com/fcm/send"; 

     var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr); 
     httpWebRequest.ContentType = "application/json"; 
     httpWebRequest.Headers.Add("Authorization:key=YOUR_SERVER_KEY"); 
     httpWebRequest.Method = "POST"; 

     using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
     { 
      string json = "{\"to\": \"/topics/news\",\"notification\": {\"body\": \"New news added in application!\",\"title\":\"" + Your_Notif_Title+ "\",}}"; 
      streamWriter.Write(json); 
      streamWriter.Flush(); 
     } 

     var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
     using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
     { 
      result = streamReader.ReadToEnd(); 
     }