Simple代碼:如何僅使用網絡模塊要發送消息給各個客戶端中的node.js(未socket.io)
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:XXX」 和 「連接:10.10.10.2:XXX」 是在端子
要發送消息到客戶端,我用sock.write(發送).. 但顯示,所有客戶收到消息
- 如何將消息發送給特定的客戶端。 從谷歌搜索有很多socket.io相關文件(解決方案).. 但在使用socket.io之前,我想知道node.js本身。 (或JavaScript本身?)
閱讀瓦迪姆的評論之後,我寫了向下跌破更多的代碼。 完整的工作代碼。
我增加了兩件事。據瓦迪姆的評論,加上物業sock.id 和使用屬性sock.remoteAddress,發送服務器的標準輸入消息
10.10.10.1客戶端只
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);
});
});
感謝像你上面的編輯...編寫一行代碼是有點困難的我,因爲這是我的第一篇 – ryuken73 2012-03-22 00:57:52