我想知道如何开始构建一个机器人来玩一个通过RESTful接口定义的棋盘游戏,该游戏具有以下方法:加入游戏,检索游戏状态,检查转弯,检索玩家状态,并采取行动。
我的问题是,我的机器人(用java编写)如何知道它何时轮到它?由于游戏是通过RESTful接口定义的,我的客户端是否应该一遍又一遍地调用“检查转向”REST方法,直到它成为我的机器人轮到玩?像每半秒一样?
我的客户如何优雅地了解游戏的当前状态?
谢谢!
答案 0 :(得分:1)
万维网使用REST,因此它可以像Web一样扩展和处理冲突。
您的TURN(或任何相应的操作)可以是资源,客户可以经常poll
使用e-tag
或If-Modified
标头state of TURN Resource
此资源。这些标头使用非常少的带宽并且非常有效地工作。
除非对手修改If-Modified-Since
,否则其他对手将等待(客户端应用)。
如果move
(自对手-1移动以来的时间)为正,则表示资源状态随对手-2的move
而改变,因此控制权将返回对手-1,反过来修改{{1}},以便控制可以转到对手-2,依此类推。
希望这澄清