노드 js에 간단한 서버를 작성했습니다.nodejs의 변수 업데이트
var tls = require("tls"), fs = require("fs"), sys = require("sys");
//Number of messages received
var received=0;
var options = {
key: fs.readFileSync("certs/keys/server.key"),//Server private key
cert:fs.readFileSync("certs/certs/server.crt"),//Server cert.
requestCert: true,//Require client to send it's certificate
rejectUnauthorized:true,
ca:fs.readFileSync("certs/certs/userA.crt") //Root certificate,
};
//Server instance with connection request callback
var server = tls.createServer(options,function(socket){
//Add a listener for receiving data packets
socket.addListener("data", function(data){
received++;
});
}).listen(2195,function(){
console.log("Server started");
});
는 또한 서버에 여러 (300) 연결을 만들고 메시지를 보내는 자바 클라이언트 응용 프로그램이 있습니다. 문제는 변수 "received"의 값이 자바 측 "send"의 값과 일치하지 않는다는 것입니다. 에 대한. 예를 들어, Java 애플리케이션에서 100,000 개의 메시지를 보내면 모든 메시지가 서버에 의해 성공적으로 수신 되었더라도 서버는 수신 된 값을 80,000으로 표시합니다.
내가받은 변수가 여러 콜백에 의해 동시에 업데이트되어 결국 최종 값이 엉망이되었다고 생각합니다. 이 문제를 어떻게 해결할 수 있을지에 대한 아이디어가 있습니까?
시도해보십시오. socket.addListener ("connect", ...'또는 ... socket.addListener ("end", ...' – DanS
보낸 메시지! = 실제로 보낸 메시지 – Mustafa