【发布时间】: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