Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 服务器和客户端应用程序之间的推送通知机制_C#_Wcf_Push Notification - Fatal编程技术网

C# 服务器和客户端应用程序之间的推送通知机制

C# 服务器和客户端应用程序之间的推送通知机制,c#,wcf,push-notification,C#,Wcf,Push Notification,我正在使用C#开发一个桌面应用程序,它通过WCF Web服务与服务器通信。它应该是一种同步应用程序。这意味着,当我在客户端应用程序上进行一些更改时,我也应该立即更新服务器(这很容易使用服务调用),但也应该提供这种机制,反之亦然,服务器上的更改必须立即应用于多个客户端。我知道我可以对我的服务器进行轮询,但这在我看来并不整洁,而且我也听说过双工服务,但我不确定是否可以使用它来实现这种机制 我想就这个问题征求一些建议。提前感谢。您需要实施发布和订阅设计。在WCF中,您可以使用NetTCP协议连接双工客

我正在使用C#开发一个桌面应用程序,它通过WCF Web服务与服务器通信。它应该是一种同步应用程序。这意味着,当我在客户端应用程序上进行一些更改时,我也应该立即更新服务器(这很容易使用服务调用),但也应该提供这种机制,反之亦然,服务器上的更改必须立即应用于多个客户端。我知道我可以对我的服务器进行轮询,但这在我看来并不整洁,而且我也听说过双工服务,但我不确定是否可以使用它来实现这种机制


我想就这个问题征求一些建议。提前感谢。

您需要实施发布和订阅设计。在WCF中,您可以使用NetTCP协议连接双工客户端和服务器

您可以在上下载一个相当好的实现

你会发现一篇好文章

关于托尔加, 您可以将winforms与Signal一起使用,服务器端可以是asp.net或独立的windows应用程序。

:用于向客户端发送推送通知的服务器端库(客户端基本上是移动设备,但也可以是自定义的)!
您也可以通过谷歌获得有关PushSharp使用的教程。

检查使用浏览器控件是否满足您的要求…希望这对您有所帮助…WCF双工服务将满足您的需要。看看这里:你确定signalr.net符合我的要求吗?因为我正在编写一个桌面应用程序,但这看起来只是在web上工作?我错了吗?这里有一篇stackoverflow的文章描述了同样的事情:谢谢,伙计,我来检查一下信号器。我听说过,但我认为它只适用于web应用程序,如果winforms也支持它,它确实可以替代双工服务。
        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();
        }