node+socket實現簡易聊天室功能
阿新 • • 發佈:2021-07-13
本文例項為大家分享了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}上線`) http://www.cppcns.com}else{ for (const client of clients) { if(client.name!==ON.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('cleurtPzzcYose',()=>{ consol客棧e.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(cleurtPzzcYient){ rl.question('',(line)=>{ client.write(JSON.stringify({ name:client.name,msg:line })) sendMsg(client) }) }
演示
服務端
客戶端1
客戶端2
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。