0

我正在通过 REST Web 服务实现软件更新服务器。它旨在通过对资源的 GET 请求来获取客户端升级“指令”(而不是文件本身)

/clients/{clientId}/upgrades?completed=false

客户端设计为每隔 30 分钟轮询一次资源。当没有可用的升级时,资源返回状态码 404,如果可用,则返回升级指令。当客户端升级完成后,客户端将通过 PUT 请求向服务器报告

/clients/{clientId}/upgrades/{upgradeId}

有一些状态变化。

现在,需要从服务器端进行升级连接控制,即最大同时升级连接限制。

我可以添加一个“升级”状态指示器字段来升级资源,在访问 /clients/{clientId}/upgrades 时更改指示器,并计算“升级计数==true”以查找连接数。如果超出连接数限制,则返回状态码 404 给客户端。但是,它确实打破了 REST Web 服务的无状态原则。

欢迎任何想法。提前致谢。

4

1 回答 1

0

您可以要求客户端使用请求启动升级的值(例如“升级”状态)对资源进行成功的 PUT。每次您的服务器获得其中一个值时,它都会检查它已批准的当前客户端总数。如果还有资源,那么它可以返回成功,允许客户端继续。

当客户端发送完成 PUT 请求时,您可以减少资源计数器。

于 2012-07-16T15:08:20.843 回答