2017-10-18 46 views
0

我有一個API端點接受來自客戶端的一些數據。還有一個1分鐘的計時器,客戶可以看到。 我希望達到的是:前端和後端計時器/事件同步?

雖然計時器處於活動狀態(> 0),但發送到API的任何帖子都保存在存儲器或陣列(或其他)中。一旦計時器達到零時,客戶端不能再向API發出請求,並且在計時器處於活動狀態時製作和存儲的任何請求現在都通過一個函數進行處理 - 爲了舉例,我們只需說這個函數記錄了所有數據傳到屏幕上。

也許我在錯誤地思考這個問題,但是如何同步前端和後端定時器,以便服務器和客戶端都知道何時停止處理POST請求並讓服務器知道它是時間處理在1分鐘內發送的所有數據。

 

    var express = require("express"); 
    var app = express(); 

    app.post("/api/data", function(req, res){ 
    // do something here - no clue 
    }); 

    app.listen(process.env.PORT,() => { 
     console.log("server running on port: ", process.env.PORT); 
    }); 

道歉,如果我已經解釋這很糟糕。 欣賞我可以得到的任何幫助,謝謝:)

回答

0

當客戶端的定時器達到0時,向服務器發送一個api調用。當服務器得到這個API調用時,布爾值爲false。如果此布爾值爲false,則忽略數據。我的意思是代碼是這樣的

var ignore = false; 
app.post("/api/data/stop", function(req,res){ 
    ignore = true; 
}); 
app.post("/api/data", function(req, res){ 
    if(!ignore){ 
    // listening to data 
    } 
}); 

app.listen(process.env.PORT,() => { 
    console.log("server running on port: ", process.env.PORT); 
}); 
0

你想實現什麼,因爲讓客戶決定什麼是你可以做出的最糟糕的選擇。

  1. 也許將服務器時間傳遞給客戶端。計算差值,然後開始計數。但是,如果客戶端實際上被允許發佈,請檢查服務器。
  2. 或者讓服務器計算剩餘的秒數,直到達到倒計時並將這些秒數傳遞給客戶端。但服務器仍然需要檢查有效時間。

我會選擇其中之一。讓服務器成爲決定因素,不依賴於客戶端。由於您可以輕鬆更改PC時間。

+0

好的,謝謝。事後看來,是讓客戶決定事情是一個非常糟糕的做法。感謝您的回覆c: –