【问题标题】:Push Notifications From Server To Client With WCF (or similar)使用 WCF(或类似方法)将通知从服务器推送到客户端
【发布时间】:2014-01-24 01:48:48
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 如果你愿意,我可以给你写一个简单的例子吗?你的场景是什么?让我知道。在我的世界里,投票是不可能的。您将需要与套接字(pub/sub)进行全双工通信!如果您有能力支付并且不介意将数据发送到托管服务,您可以使用 pubnub、pusher 等。我更喜欢自托管,但这取决于您和您的需求。
  • 我感谢所有 cmets,但我希望更多的是模式或开源技术,而不是付费服务。 SignalR 看起来很有希望......
  • SignalR 可能会满足您的需求。只需确保您仅使用 win8+ 操作系统,否则您将无法获得带有信号器的 websocket。如果您对 SSE、Longpolling 没问题,那么您可以使用任何操作系统和 SignalR!祝你好运
  • 查看这个关于实时 WCF SignalR、XSockets 等的答案stackoverflow.com/a/19713769/2940235

标签: wcf websocket push-notification signalr comet


【解决方案1】:

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

Azure: How to Use Service Bus Topics/Subscriptions。 Azure SB 有一个也可以在本地工作的对应部分。还有其他流行的消息总线技术(NServiceBus、MasTransit 等)

【讨论】:

  • 谢谢,但我没有使用 Azure。
【解决方案2】:

您可以查看node.jssocket.io。 这将为您提供所需的一切。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多