S 服务器端;W 浏览器端;P 手机端;D 第三方服务器;
W ajax 请求 S; S 请求 D,同时提醒 P 端操作某项操作; P 操作,P 端通知 D 端; D 端再返回刚才 S 端向 D 端做的请求结果; D 端得到 S 端请求,等待 P 端通知,一旦 P 端有消息,立即返回给 S 端;D 端 20 秒未得到 P 端通知,也立即返回消息给 S 端;W、S 端重新发起以上流程。
在并发的情况下,S 端获取 D 端结果返回时间太长,P 端已经操作并通知了 D 端,但 S 端没有及时得到结果;但单独测试,S 端从 D 端能及时到结果。 我这里目前只能控制 S 端和 W 端,手机 P 端和第三方 D 端不能有任何更改。 目前 S 端脚本用的 php,Web 服务器用 apache2,代码类似这样
$url = 'D端API地址';
$re = file_get_contents($url);
if($re=='something'){
...
}