替代的REST服务轮询?(Alternative to polling on REST servic

2019-10-18 00:40发布

我要实现的是具有不同的客户端(Silverlight的,WPF)一个REST的WebService。 问题的关键是使用的HTTP优势。 我必须推出更新TP我的客户(我不知道,究竟是什么,最好的选择)。 大多数教程是关于使用REST和彗星对茶亭应用,这是不适合我的情况。 我无法找到我的塞纳里奥任何样品

1)轮询一个好的做法呢? 最终我会面临一些问题? 哪一个?

2)我想介绍一个web客户端(Silverlight和WPF也)很快,但我不知道我们如何在AJAX轮询(从未使用AJAX),我想知道是否有可能做到这一点。

3)我想要的服务是因为互操作性的REST。 我希望它与WPF,Silverlight中,JAVA,使用Javascript(AJAX)和移动设备。 所以,如果我要介绍的推送通知(如果它甚至有可能与REST),它将如何与WPF / Silverlight中,AJAX工作。

如果你有代码示例,我们将不胜感激。

提前致谢!

Answer 1:

1)不好。 但随着HTTP打交道时没有的WebSockets你别无选择轮询或长轮询。 如果是possbile使用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:当微软堆栈回答说不是遗留应用程序或维护的话,肯定对REST服务将ASP.NET的Web API使用或不SignalR REST服务。 SignalR是图书馆,这将有助于你与你的推送通知,即使客户端不支持WebSockets的。 它的工作原理适应性,如果客户端不支持WebSockets的,它会尝试使用其他技术,包括轮询和长轮询。

NuGet包也inlcudes Silverlight的LIB

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

看看SignalR控制台样本。 这将是不使用SignalR库从任何.NET客户端的问题https://github.com/SignalR/Samples/tree/master/BasicChatConsole

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

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



文章来源: Alternative to polling on REST service?