那麼首先,你需要一個有狀態的後端,以存儲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