Je développe une application de bureau utilisant C #, qui communique avec un serveur via un service Web WCF. C'est supposé être une sorte d'application de synchronisation. Cela signifie que lorsque j'apporte des modifications à l'application client, je dois également mettre à jour immédiatement le serveur (c'est facile à l'aide d'appels de service), mais ce mécanisme doit également être fourni à l'inverse, une modification sur le serveur doit immédiatement être appliquée à plusieurs clients. Je sais que je peux effectuer des interrogations sur mon serveur, mais cela ne me semble pas très intéressant. De plus, j'ai entendu parler de services duplex, mais je ne suis pas sûr de pouvoir l'utiliser pour implémenter ce mécanisme.
Je demande quelques suggestions sur ce sujet. Merci d'avance.
Vous devez implémenter une conception de publication et d’abonnement. Dans WCF, vous pouvez utiliser le protocole net-tcp pour vous connecter à des clients et à des serveurs duplex.
Vous pouvez télécharger une très bonne implémentation sur http://www.idesign.net/Downloads/GetDownload/2032
Et vous trouverez un bon article ici .
Cordialement
tolga, vous pouvez utiliser winforms avec signalR, le côté serveur peut être asp.net ou une application Windows autonome.
PushSharp : Une bibliothèque côté serveur pour envoyer des notifications Push aux clients (les clients sont essentiellement des appareils mobiles, mais peuvent aussi être personnalisés)! Vous recherchez également un tutoriel sur l’utilisation de PushSharp.
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();
}