gpt4 book ai didi

asp.net-web-api - ASP.NET Web API中的回调方法

转载 作者:行者123 更新时间:2023-12-04 06:41:42 26 4
gpt4 key购买 nike

我有一个ASP.NET Web API服务器,该服务器必须与不同平台上的不同应用程序进行通信。现在,我想创建一个类似于回调的方法:客户端应用程序对其进行订阅,并等待服务器触发消息。
示例:
许多用户都在等待新产品在商店中发售-他们订阅了此“事件”。当产品到达商店时-每个客户都会收到一条消息,在某些情况下必须进行处理。

  • 用户发送请求“订阅”
  • 服务器收到请求“产品可用!”
  • 服务器会向每个用户发送一条包含产品详细信息的消息。
  • 用户的应用程序处理消息

  • 我试图在ASP.NET Web API中找到有关回调或双工的一些信息,但是有一个建议-最好将WCF用于这种方法。
    解决方案
  • 在每个客户端应用程序中创建类似于计时器的内容,即每N秒发送一个请求“产品是否可用?”直到得到“假”。当响应为true时-发送消息“获取产品详细信息”。这会导致大量流量,并且如果使用这些计时器的客户很多-会很不好,不是吗?
  • 创建一个小的回调服务器(也许是WCF)。但是在这种情况下,此服务器与不同平台上的应用之间的通信会出现很多问题。
  • 也许我错过了ASP.NET Web API中的一些解决方案。

  • 如果您有一些想法可以解决这个问题,请给我一个建议。
    感谢帮助。

    最佳答案

    看起来您想要来自服务器的推送通知-在这种情况下,可以通过将SignalR与Web API结合来实现。

    布拉德·威尔逊(Brad Wilson)有一个很好的例子:

  • 代码在这里-https://github.com/bradwilson/WebstackOfLove
  • NDC Oslo演讲解释了所有这些内容-http://vimeo.com/43603472

  • 简而言之,每当您将新项目添加到Web API时,您都可以通知所有已连接(订阅)的客户端:
    public void PostNewItem(ToDoItem item)
    {
    lock (db)
    {
    // Add item to the database
    db.Add(item);

    // Notify the connected clients
    Hub.Clients.processItem(item);
    }
    }

    SignalR将在客户端上调用 processItem函数。

    或者,您可能想研究JavaScript SSE和Web API的 PushStreamContent,但这要低得多,SignalR会为您抽象出很多此类内容,因此处理起来可能会更加复杂。

    我在这里关于此方法的博客 http://www.strathweb.com/2012/05/native-html5-push-notifications-with-asp-net-web-api-and-knockout-js/

    关于asp.net-web-api - ASP.NET Web API中的回调方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14184690/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com