(简单)使用 REST 和 Silverlight 4 的推送通知?
Posted
技术标签:
【中文标题】(简单)使用 REST 和 Silverlight 4 的推送通知?【英文标题】:(Simple) Push Notification using REST with Silverlight 4? 【发布时间】:2011-10-06 00:16:48 【问题描述】:使用带有 Silverlight 4 客户端的 RESTful WCF 服务实现推送通知服务的最佳方式是什么?
我们目前正在使用轮询技术来调用 REST 服务以进行更新。我希望让服务器推送或广播通知。
【问题讨论】:
【参考方案1】:为了结束,我想我应该分享一下我们最终做了什么。
我们确实使用标准套接字通信创建了一个作为 Windows 服务运行的推送通知服务器。我们维护一个已连接客户端的列表并根据需要推送通知。
它不是 RESTful,但由于客户端不发出请求,因此以 RESTful 方式实现没有多大意义。
【讨论】:
【参考方案2】:您可以尝试使用 Pusher(我为之工作)和我们的 Silverlight 库。见:http://pusher.com/docs/client_libraries#dotnet
更新: 由于您声明您不能使用托管服务并且您不想使用 WebSockets(尽管我仍然建议 WebSockets 是最佳选择),您可以让 HTTP 流式传输可靠地工作。如果您需要扩展应用程序,我建议您为推送通知使用专用的实时服务器。您可以在此处找到一堆实时自托管解决方案列表: http://www.leggetter.co.uk/real-time-technologies-guide
Twitter 将 Jetty 用于其 HTTP 流 API(Firehose 等),因此它将提供可扩展且可靠的解决方案。
如果您可以进一步详细说明您的问题,我们很乐意提供更多信息。
【讨论】:
托管服务不是一个选项。这些是在非常安全、自包含的环境中运行的内部应用程序(即没有外部访问权限),安装数量为数千。 Pusher 还依赖于 WebSockets,这在 SL4 中至少可以说是不可靠的,更不用说它们需要在浏览器中运行 SL 应用程序,当然,我们不需要。 ;-) 如果您控制运行时环境和网络,那么您绝对可以让 WebSockets 可靠地工作。如果 WebSockets 需要在浏览器中运行,我会感到惊讶。该实现使用底层 SL 网络堆栈。但也可能是这样。以上是关于(简单)使用 REST 和 Silverlight 4 的推送通知?的主要内容,如果未能解决你的问题,请参考以下文章
如何为新的 Silverlight 应用程序在 WCF、REST、POX 和 RIA 服务之间进行选择