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

时间:2014-01-24 01:48:49

标签: wcf websocket push-notification signalr comet

我确信这已经回答了几十次,但我不知道要搜索哪些关键字,因此我希望有人至少能告诉我应该在哪里寻找我的情景解释。

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

Comet,SignalR,WebSockets,XSockets,Publisher / Subscriber Pattern ......

我已经看过这些,我不确定哪种方法是正确的。客户端当然可以在启动时“订阅”服务器,因此这应该不是问题。但客户端应该是控制台应用程序,Windows服务或WCF服务。似乎Comet和SignalR更适用于ASP.NET应用程序,其中客户端是浏览器中的JS。我只需要“服务器(客户端)”到客户端位于防火墙后面的服务器连接。

这些术语中的哪一个(或者没有一个)是处理服务器的好方法 - >客户推送通知?

2 个答案:

答案 0 :(得分:1)

使用Azure Service Bus之类的Pub / Sub架构模式可以帮助您创建所需的解决方案。这确实需要服务和客户端知道总线。对于客户端和服务的管道,使用内置绑定的WCF来促进这种模式的使用。

Azure: How to Use Service Bus Topics/Subscriptions。 Azure SB还有一个在本地工作的计数器部件。还有其他流行的消息总线技术(NServiceBus,MasTransit等)

答案 1 :(得分:1)

您可以与node.js一起查看socket.io。 这将提供您需要的一切。

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