//Server Functions
var socketArray = [];
var socketRcon = [];
for (var i = 0; i < serversConfig.serversArray.length; i++) {
socketArray[i] = new Socket;
socketArray[i].setEncoding("utf8");
socketArray[i].setNoDelay();
socketArray[i].setTimeout(1000);
socketArray[i].connect(serversConfig.serversArray[i].port, serversConfig.serversArray[i].ip);
socketRcon[i] = serversConfig.serversArray[i].rcon;
socketArray[i].on("connect", function() {
this.write(socketRcon[i] + "\n", "utf8");
console.log("CONNECTED TO THE SERVER...");
});
socketArray[i].on("data", function(data) {
console.log(data);
});
socketArray[i].on("error", function(err) {
console.log("ERROR:" + err);
});
socketArray[i].on("close", function(err) {
console.log("CLOSED:" + err);
});
};
이것은 구성 파일에서 여러 서버에 연결하는 코드이며, 소켓이 연결될 때마다 암호를 보내야합니다. 그러나 'socketRcon [i]'는 정의되지 않았습니다. 왜 그런 일이 일어나고 어떻게 수정합니까?var가 for 루프 내에서 정의되지 않았습니다.
나는 시도했다 : http://pastebin.com/LBkBRY5g,하지만 분명히 루프는 실행되지 않았다. –
http://jslinterrors.com/dont-make-functions-within-a-loop/에서 루프에서 즉시 호출 된 함수 식 (IIFE)을 사용하는 이유와 제 의견으로는 더 읽기 쉬운 옵션을 참조하십시오 . – DaveParsons