我知道,ASP.NET Web API是为创建RESTful API而设计的,而SignalR则用于实时通信。因此,它们不是竞争性技术。
想象一下:您正在创建一个客户端/服务器应用程序,您正在编写一个桌面客户端,该客户端将连接到服务器以运行某些操作。这些操作由客户端启动,而不是由服务器启动,因此两者都可以正常工作。
如果这是一个内部应用程序,并且您不公开API,则为什么要使用Asp.Net Web Api而不是SignalR?
在两种情况下,您都有在服务器上运行的方法,当客户端调用它们时,这些方法将运行。在Web Api中作为控制器中的操作,在SignalR中则是作为hubs中的方法。两者都允许您向方法发送参数,并在客户端中获得结果。
考虑到SignalR中的流量比Web Api略低(因为在websocket中,HTTP连接是永久建立的,而不是为每个请求创建的),我会选择SignalR。我错过了什么吗?