0
ノード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)の接続を行い、メッセージを送信するJavaクライアントアプリケーションを持っています。問題は、変数 "received"の値がJava側の "send"の値と一致しないことです。ために。たとえば、Javaアプリケーションから100,000のメッセージを送信すると、すべてのメッセージがサーバーによって正常に受信されたにもかかわらず、受信した値が80,000と表示されます。
私は、受信した変数が複数のコールバックによって同時に更新されていると考えています。したがって、最終的な値が乱れています。どのように私はこれを解決することができます上の任意のアイデア?
実際に送信したメッセージ(エラーが多分あるため)は、あなたが実際に送信したメッセージ!= socket.addListener( "connect"、...またはsocket.addListener( "end"、... ' – DanS
) – Mustafa