我必须实现具有不同客户端(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一起使用。
如果您有代码示例,我们将不胜感激。
提前致谢!
答案 0 :(得分:1)
1)不好。但是当处理没有WebSockets的HTTP时,您无法选择轮询或长轮询。如果可以使用WebSockets和/或SingnalR,那么您就可以避免轮询并提高性能。
2)jQuery.ajax
http://api.jquery.com/jQuery.ajax/
3)查看SignalR和SingnalR样本
https://github.com/SignalR/SignalR
还有一个暗示。根据我的经验,几乎总是可以重新设计客户端或UI界面以避免轮询。确保除了轮询之外没有其他办法。当您不使用遗留应用程序时,使用SignalR的WebSockets就是您的方式
<强> UPD 强>: 当谈到遗留应用程序或维护时,绝对对于Microsoft堆栈中的REST服务,答案将是带有或不带SignalR的REST服务的ASP.NET Web API。 SignalR是一个库,即使客户端不支持WebSockets,它也可以帮助您处理推送通知。它自适应地工作,如果客户端不支持WebSockets,它将尝试使用其他技术,包括轮询和长轮询。
Nuget包也包括silverlight lib
http://nuget.org/packages/Microsoft.AspNet.SignalR.Client/
看看SignalR控制台示例。从任何.NET客户端使用SignalR库都不是问题 https://github.com/SignalR/Samples/tree/master/BasicChatConsole
有关如何使用ASP.NET Web API创建REST服务的示例和教程在此处