基于TCP的聊天系统

来源:互联网 发布:阿里云企业备案表 编辑:程序博客网 时间:2024/05/16 08:43

服务端:node index.js

const net = require('net')var count = 0var 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

0 0