我有一个桌面客户端,它通过 ASP.NET Web API 检查服务器上的新内容并将其保存在本地。类似于电子邮件客户端的东西。
但我不知道实现这一点的最佳方法是什么,我的意思是我应该有一个控制器来检查是否有新内容,然后客户端调用另一个控制器来下载它,还是什么?
任何线索表示赞赏。
我有一个桌面客户端,它通过 ASP.NET Web API 检查服务器上的新内容并将其保存在本地。类似于电子邮件客户端的东西。
但我不知道实现这一点的最佳方法是什么,我的意思是我应该有一个控制器来检查是否有新内容,然后客户端调用另一个控制器来下载它,还是什么?
任何线索表示赞赏。
此处描述了restful方法从Web Api控制器返回http状态代码,您需要将上次更新时间带入控制器方法,使用它来检查该日期是否已进行更改,如果尚未更改,则返回HTTP 状态码 304 Not Modified 并省略响应;但是,如果它已更改,则以 200 OK 正常发送资源。
就我个人而言,我会通过管理通过 http 标头和 etag 的最后更新来稍微修改上面提到的方法。阅读这里以获得更多信息。
大多数人使用轮询方法,应用程序在系统最后一次检查更新时传递日期或标识符,然后将任何新更新流式传输到桌面客户端。您需要做的就是调用一个方法来检查数据库在特定时间的更新,流式传输新的,然后将新的添加到结果集中(或刷新整个结果)。
public class UpdatesController : ApiController
{
public object Get(long millisecondsAsOf)
{
//Query from DB, return results, or return true/false if there are new records.
}
}