服务端:node index.js
const net = require('net')
var count = 0
var users = {}
var server = net.createServer(function(_conn){
console.log('\033[90m new connection! \033[39m')
var __nickname
function broadcast(_msg){
for(var i in users){
if(i != __nickname){
users[i].write(_msg)
}
}
}
_conn.setEncoding('utf8')
_conn.write('\n > welcome to \033[92mnode-chat\033[39m'
+ '\n >' + count + ' other people are connected at this time'
+ '\n > please write your name and press enter:')
count++
_conn.on('data',function(_data){
console.log(_data)
_data.replace('\r\n','')
if(!__nickname){
if(users[_data]){
return _conn.write('\033[93m > nickname already in use. try again:\033[39m')
}else{
__nickname = _data
users[__nickname] = _conn
broadcast('\033[90m >' + __nickname + ' joined the room \033[39m\n')
}
}else{
broadcast('\033[96m >' + __nickname + ' :\033[39m' + _data + '\n')
}
})
_conn.on('close',function(){
count--
delete users[__nickname]
broadcast('\033[90m >' + __nickname + ' left the room \033[39m\n')
})
})
server.listen(3000,function(){
console.log('\033[96m server listen on 3000 \033[39m')
})
客户端:telnet localhost 3000