node+socket 간이 채 팅 방 기능 구현

3039 단어 nodesocket채 팅 방
본 논문 의 사례 는 node+socket 이 간단 한 채 팅 방 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
서버

const net = require('net')
const  server = net.createServer()

//    
let clients = []

//    
server.on('connection',client=>{
    client.on('data',(chunk)=>{
        let data  = chunk.toString()
        if(data.match(/login:(.*)/)){
            let name = data.match(/login:(.*)/)[1]
            client.name = name
            clients.push(client)
            console.log(`  ${name}  `)
        }else{
            for (const client of clients) {
                if(client.name!==JSON.parse(data).name){
                    client.write(data)
                }

            }
        }
    })

    client.on('close',()=>{
        console.log(`  ${client.name}  `)
    })

    client.on('error',()=>{
        console.log(`  ${client.name}    `)
    })

})

server.on('error',(err)=>{
    console.log('     ',err)
})

server.on('close',()=>{
    console.log('     ')
})

server.listen(9527,()=>{
    console.log("     ")
})
클 라 이언 트

const net = require('net')
const readline =  require('readline')
//       
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

//  
const name  =  process.argv[2]
//     
const client = net.createConnection({port:9527},()=>{
    console.log(name+'      ');
    client.write(`login:${name}`)
    client.name = name
    //      
    sendMsg(client)
})

client.on('data', (chunk) => {

    let data  = JSON.parse(chunk.toString())
    if(data){
        console.log(`[${data.name}] : ${data.msg}`)
    }
});
client.on('end', () => {
    console.log('       ');
});
client.on('error', () => {
    console.log('     ');
});

//      
function sendMsg(client){

    rl.question('',(line)=>{
        client.write(JSON.stringify({
            name:client.name,
            msg:line
        }))
        sendMsg(client)
    })
}
시범 을 보이다
서버

클 라 이언 트 1

클 라 이언 트 2

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기