那么首先,你需要一个有状态的后端,以存储USERCOUNT位。所以php +任何分贝。
你提到过socket.io,建立在nodejs上。
使用nodejs这一点很难,因为它的单线程运行时,所以你可以将变量值共享到不同的客户端。
您的NodeJS都要听3个网址:
- 用于传递筑底网页(可无的NodeJS做,只是URL到HTML)
- AJAX网址传递点击一个按钮,从客户端后端,返回当前计数
- ajax url传递当前秒数,返回当前计数和连接的用户。
每当2.频道被调用,您需要检查,如果倒数计时器正在运行。如果没有:启动它,否则增加点击计数器。
这样的:
//nodejs code
var currendSeconds=60;
var connectedClients = 0;
var threadid;
function clientClickedButton(req, res){ // 2. url
if(currendSeconds==60 ||) {
threadid = setInterval(function(){
currendSeconds--;
if(currentSeconds == 0){
clearInterval(threadid);
}
}, 1000); //your counter
}
connectedClients++;
res.send(currendSeconds);
}
你的客户方必须听点击活动按钮,发送一个AJAX REQ到2.url和显示返回秒(从现在开始,我们不需要请求秒,只需设置一个倒数客户端,而不需要当前的秒数。)
好吧,不知道我可以运行nodejs,因为我是托管的cpanel,没有shell访问。 – 2013-02-22 21:05:28
所以,我可能需要看看拉取解决方案,而这会给我一些延迟,虽然... – 2013-02-22 21:06:24
我结束了使用JQuery结合Ajax/php/Mysql组合来解决我的问题。感谢让我开始。 Regards René – 2013-03-27 23:29:03