2

我必须实现一个具有不同客户端(Silverlight、WPF)的 REST WebService。重点是利用http的优势。我必须向我的客户推送更新(我不知道,最好的选择是什么)。大多数教程都是关于使用 REST 和 Comet 进行聊天应用程序,这不适合我的情况。我找不到任何适合我的 senario 的样本

1)投票是一种好习惯吗?我最终会面临一些问题吗?哪一个?

2) 我想尽快介绍一个 Web 客户端(silverlight 和 WPF),但我不知道我们如何在 AJAX 中进行轮询(从未使用过 AJAX),我想知道是否可以这样做。

3) 由于互操作性,我希望服务是 REST。我希望它可以与 WPF、Silverlight、JAVA、Javascript(AJAX) 和移动设备一起使用。因此,如果我想引入推送通知(如果它甚至可以使用 REST),它将如何与 WPF/Silverlight、AJAX 一起使用。

如果您有代码示例,将不胜感激。

提前致谢!

4

1 回答 1

1

1)不好。但是在处理没有 WebSockets 的 HTTP 时,您别无选择轮询或长轮询。如果可以使用 WebSockets 和/或 SingnalR,那么您就可以避免轮询并提高性能。

2) jQuery.ajax

http://api.jquery.com/jQuery.ajax/

3)查看SignalR和SingnalR样本

http://signalr.net/

https://github.com/SignalR/SignalR

http://www.asp.net/signalr

还有一个提示。根据我的经验,几乎总是可以重新设计客户端或 UI 界面以避免轮询。确保除了轮询之外别无他法。当您不使用遗留应用程序时,使用 SignalR 的 WebSockets 是您的方式

UPD:当不谈论遗留应用程序或维护时,对于 Microsoft 堆栈中的 REST 服务,答案肯定是 ASP.NET Web API 用于 REST 服务(有或没有 SignalR)。SignalR 是一个库,即使客户端不支持 WebSockets,它也可以帮助您处理推送通知。它自适应地工作,如果客户端不支持 WebSockets,它将尝试使用其他技术,包括轮询和长轮询。

Nuget 包还包括 silverlight lib

http://nuget.org/packages/Microsoft.AspNet.SignalR.Client/

查看 SignalR 控制台示例。从任何 .NET 客户端 https://github.com/SignalR/Samples/tree/master/BasicChatConsole使用 SignalR 库都不是问题

有关如何使用 ASP.NET Web API 制作 REST 服务的示例和教程在这里

http://www.asp.net/web-api

于 2013-04-17T07:39:55.583 回答