我需要提供从外部API到多个用户请求的数据。我想知道在这种情况下使用的策略是什么。
例如:
然后是服务器端:
当然,我想要做的是,由于User1和User2请求相同的数据,服务器将不会向API提出两倍的请求。我不知道该怎么做。
此外,必须轮询对API的请求,即当用户提出请求且至少有一个用户仍然连接时,每10秒或30秒。
关于技术,我将不得不使用NodeJS。然后我想通过socket.io而不是ajax调用来完成所有这些。
请有人向我解释一个可以在Node中执行此操作的系统吗?
答案 0 :(得分:0)
听起来您希望服务器缓存A
,以便在其他用户请求时,服务器可以快速发送存储在内存中的A
。
Node.js代码是这样的:
var cachedData;
socket.on('requestDataA',function(data){
var date = new Date().getTime();
//check and see if cachedData is expired
if(data >=cachedData.expireDate){
cachedData=null;
}
if(!cachedData){
pollServerToGetA(function(A){
cachedData=A;
socket.emit('dataA',cachedData);
});
}else{
socket.emit('dataA',cacheData);
}
});