C# 带有WebSocket的ASP.NET Web API 2

C# 带有WebSocket的ASP.NET Web API 2,c#,asp.net-web-api,websocket,C#,Asp.net Web Api,Websocket,我们目前正在考虑重构我们的后端服务层,并开始使用ASP.NET WEB Api而不是WCF,这主要是因为WebAPI是简单Rest通信的更好解决方案。然而,当后端发生需要通信的事情时,我们还需要能够更新客户端浏览器窗口。因此需要WebSocket或类似的东西 我的问题:我的MVC5WebAPI控制器是否需要更改?在google上搜索时,我似乎可以简单地添加WebSockets控制器和WebAPI控制器,以使双向通信正常工作,是这样吗?如果“纯”WebSockets不是一个要求,我可以推荐将Sig

我们目前正在考虑重构我们的后端服务层,并开始使用ASP.NET WEB Api而不是WCF,这主要是因为WebAPI是简单Rest通信的更好解决方案。然而,当后端发生需要通信的事情时,我们还需要能够更新客户端浏览器窗口。因此需要WebSocket或类似的东西

我的问题:我的MVC5WebAPI控制器是否需要更改?在google上搜索时,我似乎可以简单地添加WebSockets控制器和WebAPI控制器,以使双向通信正常工作,是这样吗?

如果“纯”WebSockets不是一个要求,我可以推荐将SignalR与WebAPI 2一起使用(它们真的是一个巨大的Web堆栈!)。本演员阵容中有几个很好的教程:

需要了解的一个关键点是控制器/集线器等的不同使用寿命


编辑:
您可能想了解的一个方面是如何从控制器调用SignalR Hub方法:从控制器与集线器交互非常容易,下面是一些相关阅读:

好的,我看了视频的一些部分。因为我没有使用OData控制器,所以我似乎可以将WebAPI控制器从支持“集线器”的控制器改为inheri,而不是ApicController。我会被迫更改web api控制器函数签名,还是只是在适当的web api控制器函数中添加信号R代码?好的,在阅读了上面的Augustos评论之后;我需要在需要双向通信的地方实现一个集线器,并在不需要的地方使用常规webapi控制器。我以前没有听说过“WebSockets控制器”,但如果需要将实时内容从服务器推送到客户端,则应使用Signal:。通常,您将首先实现一个集线器,而不是ApicController。