Я собираюсь создать сервер чата с помощью сетевого модуля Node js и пытаюсь подключить сервер с помощью telnet (в оконной системе).Всякий раз, когда подключенный клиент вводит в сеанс telnet, каждый символ отображается в сокете другого клиента.
Ожидаемый вывод - ввод должен буферизироваться до следующего перехода на новую строку, поэтому, когда я нажимаю Enter, он должен передаваться другим подключенным клиентам.
Вот мой server.js
const server = require('net').createServer();
let counter = 0;
let sockets = {};
server.on('connection', socket => {
socket.id = counter++;
sockets[socket.id] = socket;
console.log(`Client socket number ${socket.id} connected`); // This is for our confirmation.
socket.write("Welcome new Client!"); // This is the client side confirmation.
socket.on('data', data => {
Object.entries(sockets).forEach(([id, cs]) => {
if(id != socket.id){
cs.write(`${socket.id}: ${data}`);
}
})
})
socket.on('end', () => {
delete sockets[socket.id];
console.log('Client disconnected.');
})
})
server.listen(8000, () => console.log('Server Bound'));
Как вы можете видеть, когда клиент 1 типа «тестирует», он передает каждый отдельный символ другим подключенным клиентам вместо ожидания вводаперевод строки (или ввод).
А также дайте мне знать, как завершить текущий активированный сеанс telnet в Windows (использование командной строки, так как ctrl + c не работает).