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
使用WCF(或类似工具)将通知从服务器推送到客户端_Wcf_Websocket_Push Notification_Signalr_Comet - Fatal编程技术网

使用WCF(或类似工具)将通知从服务器推送到客户端

使用WCF(或类似工具)将通知从服务器推送到客户端,wcf,websocket,push-notification,signalr,comet,Wcf,Websocket,Push Notification,Signalr,Comet,我确信这个问题已经被回答了几十次,但我不知道该搜索什么关键词,因此我希望至少有人能告诉我,在解释我的情况后,我应该去哪里寻找 我需要两个服务(一个可以只是一个客户端,如果这更容易)来互相交谈,但客户端将在一个私人网络上,而服务器将在互联网上。我希望能够将作业推送到客户机,但服务器显然没有IP来访问客户机。我不希望每X秒就从客户那里轮询一次。我已经阅读了围绕这个问题的各种主题,因此我将抛出一些我认为相关的术语,但我不确定使用哪一个或确切地如何使用 Comet、SignalR、WebSockets、

我确信这个问题已经被回答了几十次,但我不知道该搜索什么关键词,因此我希望至少有人能告诉我,在解释我的情况后,我应该去哪里寻找

我需要两个服务(一个可以只是一个客户端,如果这更容易)来互相交谈,但客户端将在一个私人网络上,而服务器将在互联网上。我希望能够将作业推送到客户机,但服务器显然没有IP来访问客户机。我不希望每X秒就从客户那里轮询一次。我已经阅读了围绕这个问题的各种主题,因此我将抛出一些我认为相关的术语,但我不确定使用哪一个或确切地如何使用

Comet、SignalR、WebSockets、XSockets、发布者/订阅者模式

我已经看了每一个,我不确定哪一个是正确的方向。客户机当然可以在启动时“订阅”服务器,所以这不应该成为问题。但客户端应该是控制台应用程序、windows服务或WCF服务。Comet和Signal似乎更适用于ASP.NET应用程序,其中客户端是浏览器中的JS。我只需要“服务器(客户端)”到服务器的连接,其中客户端位于防火墙后面


以下哪一个术语(或它们都不是)是处理服务器->客户端推送通知的好方法?

使用类似Azure Service Bus的发布/订阅体系结构模式可以帮助您创建所需的解决方案。这确实需要服务和客户机知道总线。对于客户端和服务的管道,使用具有内置绑定的WCF来促进此模式的使用

。 Azure SB也有一个在本地工作的计数器部件。还有其他流行的消息总线技术(NServiceBus、MasTransit等)

您可以与一起查看。 这会给你所需要的一切


socket.io
使用web套接字,如果浏览器不支持web套接字,它会优雅地退回到其他通信机制,如xhr、flash、轮询、aso。

如果您愿意,我可以给您写一个简单的示例?你的设想是什么?让我知道。在我的世界里,投票是不可能的。您需要使用套接字(pub/sub)进行全双工通信!如果你能负担得起费用,并且不介意将数据发送到托管服务,你可以使用pubnub、pusher等。我更喜欢自托管,但这取决于你和你的需要。我感谢所有的评论,但我希望更多的是一种模式或开源技术,而不是付费服务。信号员看起来很有前途……信号员可能会满足您的需要。只需确保您仅使用win8+OS,否则您将无法使用Signal获得WebSocket。如果您对SSE、Longpolling满意,那么您可以使用任何操作系统和信号器!很幸运看到这个关于实时WCF信号器、XSockets等的答案,谢谢,但我不使用Azure。