Простой код:
process.stdin.resume()
process.stdin.setEncoding('utf8');
var server = createServer();
server.listen(9999);
server.on('connection',function(sock){
console.log('CONNECTED:'+sock.remoteAddress+":"+sock.remotePort);
process.stdin.on('data',function(send){
sock.write(send);
});
}
При получении соединения от 10.10.10.1 и 10.10.10.2 выдается сообщение «СОЕДИНЕНО: 10.10.10.1: ххх» и «СОЕДИНЕНО: 10.10.10.2»: xxx "отображается на терминале
Чтобы отправить сообщение клиенту, я использовал sock.write (отправить) .. но, Все клиенты получили сообщение
- Как я могу отправить сообщение конкретному клиенту.Начиная с поиска в Google, есть много документов (решений), связанных с socket.io, но прежде чем использовать socket.io, я хочу узнать сам node.js.(или сам javascript?)
Прочитав комментарий Вадима, я записал больше кода ниже.полностью рабочий код.
Я добавляю две вещи.Согласно комментарию Вадима, добавьте свойство sock.id и, используя свойство sock.remoteAddress, отправьте стандартное сообщение сервера на
10.10.10.1 только для клиента
</p>
var net = require('net')
process.stdin.resume()
process.stdin.setEncoding('utf8');
var server = net.createServer();
server.listen(9999);
server.on('connection',function(sock){
sock.write('input your ID: ',function(){
var setsockid = function(data){
id=data.toString().replace('\r\n','');
console.log('ID:'+id+' added!!')
sock.id=id
sock.removeListener('data',setsockid);
};
sock.on('data',setsockid);
sock.on('data',function(data){
d=data.toString().replace('\r\n','');
console.log(sock.id+' say: '+d);
});
});
console.log('CONNECTED:'+sock.remoteAddress+":"+sock.remotePort);
process.stdin.on('data',function(send){
if (sock.remoteAddress=='10.10.10.1') sock.write(send);
});
});