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