Node.js를 사용하여 기본 게임 (텍스트 만)을 만들려고하는데 'net'라이브러리입니다.
나는 약간의 벽을 때리고있다. 나는 어떤 정보를 입력하고 사용자가 상기 정보를 입력 할 때까지 기다리는 방법을 알아낼 수 없다.
Node.js 텔넷을 사용하는 클라이언트 및 서버 게임
여기까지의 코드는 다음과 같습니다. 상당히 기본이며 클라이언트를 실행할 때 2 줄을 출력 한 다음 중단됩니다. 그 시점에서 나는 사용자가 정보를 입력 할 수 있기를 원합니다. 여기 몇 가지 확실하지 않습니다.
1. 사용자가 입력 할 수있게하려면 어떻게해야합니까? (구체적으로 클라이언트 또는 서버 측입니까)
2. 엔터를 누르면 서버로 데이터를 보내려면 어떻게해야합니까?
나는 Telnet이가는 한 몇 가지 문서를 읽었으며 마지막 질문을 던졌습니다. Node의 텔넷 모듈이 실제로이 문제에 적합한 지 또는 클라이언트/서버 생성을위한 더 나은 대안이 있습니까? 통신?
클라이언트 코드 :
var connect = require('net');
var client = connect.connect('80', 'localhost');
console.log('Connection Success!\n\n');
client.on('data', function(data) {
// Log the response from the HTTP server.
console.log('' + data);
}).on('connect', function() {
// Manually write an HTTP request.
//I'm assuming I could send data at this point here, on connect?
}).on('end', function() {
console.log('Disconnected');
});
서버 코드 : 사전에
var net = require('net');
var sockets = [];
function cleanInput(data) {
return data.toString().replace(/(\r\n|\n|\r)/gm,"");
}
function receiveData(socket, data) {
var cleanData = cleanInput(data);
if(cleanData === "quit") {
socket.end('Goodbye!\n');
}
else {
for(var i = 0; i<sockets.length; i++) {
if (sockets[i] !== socket) {
sockets[i].write(data);
}
}
}
}
function closeSocket(socket) {
var i = sockets.indexOf(socket);
if (i != -1) {
sockets.splice(i, 1);
}
}
function newSocket(socket) {
sockets.push(socket);
socket.write('Welcome to the Battleship Server!\n\n');
socket.write('Please enter a username: ');
socket.on('data', function(data) {
receiveData(socket, data);
})
socket.on('end', function() {
closeSocket(socket);
})
}
var server = net.createServer(newSocket);
server.listen(80);
감사합니다!