我正在通过REST Web服务实现软件更新服务器。它旨在通过GET请求到资源
来获取客户端升级“指令”(而不是文件本身)/clients/{clientId}/upgrades?completed=false
客户端旨在以30分钟的间隔轮询资源。当没有可用的升级时,资源返回状态代码404,并返回升级指令(如果可用)。完成客户端升级后,客户端将通过PUT请求向服务器报告
/clients/{clientId}/upgrades/{upgradeId}
有一些状态变化。
现在,需要从服务器端进行升级连接控制,即最大同时升级连接限制。
我可以添加一个“升级”状态指示器字段来升级资源,在访问/ clients / {clientId} /升级时更改指示符,并计算“升级计数升级== true”以查找连接数。如果超过连接数限制,则将状态代码404返回给客户端。但是,它确实打破了REST Web服务的无状态原则。
欢迎任何想法。提前谢谢。
答案 0 :(得分:0)
您可以要求客户端使用请求启动升级的值(例如“升级”状态)对资源进行成功的PUT。每当您的服务器获得其中一个值时,它将检查它已批准的当前客户端总数。如果剩下资源,那么它可以返回成功,允许客户端继续。
当客户端发送完成PUT请求时,您可以减少资源计数器。