Bir seferde bir istek tarafından bir değişken tarafından artırılan bir değişken tutmak nasıl 10 sn içinde istek sayısını sayacak bir kod yazıyorum ve o sadece 1 4 istekleri izin verecektir. Bu her 10 saniyede bir tekrar eder. Örnek kodum ekte. Sorunum, birden çok istek farklı makinelerde aynı anda geliyor olsa da farklı davranıyor. Muhtemelen nedeni, değişkeni senkronize etmedim. Lütfen bunu nasıl yapacağınıza cevap verin. Oldukça genel yüzdennodejs
var http = require("http");
var Repeat = require("repeat");
var fs= require("fs");
var express=require('express');
var a=0; /* This is the variable */
function send404PageNotFound(response){
console.log("in 404");
response.writeHead(404,{'content-type': 'text/plain'});
response.write("$04 Page not Found");
response.end();
}
function onRequest(request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
console.log('A request is coming from');
console.log(request.connection.remoteAddress);
a=a+1;
console.log(a);
if(a<5)
{
if(request.method== 'GET' && request.url=='/'){
response.writeHead(200,{'Content-Type': 'text/html'});
fs.createReadStream("./index.html").pipe(response);
}
else{
send404PageNotFound(response);
}
}
else
{
response.end('Server is busy\n');
}
}
setInterval(function(){ a=0; },10000);
http.createServer(onRequest).listen(8081);
üzerine de, go "o farklı davranır" tanısal olarak işe yaramaz. Lütfen tam olarak nasıl davrandığını ve beklediğinizden nasıl farklı olduğunu açıklayın. "değişkeni senkronize etmedim" - JS tek iş parçacıklı, senkronizasyon kavramı geçerli değil. – Amadan