我有两个客户。客户端向node.js express服务器发送HTTP请求,然后在DB中写入然后等待该值更改。当另一个客户端向node.js express发送HTTP请求并且它更新DB中的记录时,它会发生变化。然后第一个请求将响应JSON发送给第一个客户端。
这个想法是第一个客户端进程在不使用忙等待的情况下等待来自第二个客户端进程的信号(比如每隔100ms从数据库读取一次)。这里的代码(uniqueid是一个值是该表行的PRIMARY KEY):
var foo = function(uniqueid, client, cb){
var query="UPDATE... WHERE uniqueid=" + db.escape(uniqueid) + ";";
db.query(query, function(err, result, fields){
if(client==1){ //if we are client1 we wait
waitClient2(uniqueid, function(callback){
//Then read the new value
getValue(uniqueid, function(v){
cb(v);
});
});
}else{ //else unlock client1
unlockClient1(uniqueid);
//Then read the new value
getValue(uniqueid, function(v){
cb(v);
});
}
});
}
var waitClient2 = function(uniqueid, cb){
//wait(uniqueid)
//cb(0) for unlock foo
}
var unlockClient1 = function(uniqueid){
//signal(uniqueid)
}
有没有办法从客户端请求向另一个客户端请求发送消息(信号),以便第二个可以解锁自己编辑两个最新功能?
我也很欣赏其他的想法
谢谢。