- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) > JavaScript >
- node+socket實(shí)現簡(jiǎn)易聊天室功能
本文實(shí)例為大家分享了node+socket實(shí)現簡(jiǎn)易聊天室的具體代碼,供大家參考,具體內容如下
const net = require('net') const server = net.createServer() //用戶(hù)列表 let clients = [] //監聽(tīng)連接 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(`用戶(hù)${name}上線(xiàn)`) }else{ for (const client of clients) { if(client.name!==JSON.parse(data).name){ client.write(data) } } } }) client.on('close',()=>{ console.log(`用戶(hù)${client.name}下線(xiàn)`) }) client.on('error',()=>{ console.log(`用戶(hù)${client.name}發(fā)生錯誤`) }) }) server.on('error',(err)=>{ console.log('服務(wù)器錯誤',err) }) server.on('close',()=>{ console.log('服務(wù)器關(guān)閉') }) server.listen(9527,()=>{ console.log("服務(wù)器開(kāi)啟") })
const net = require('net') const readline = require('readline') //讀取輸入的信息 const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); //名字 const name = process.argv[2] //連接服務(wù)器 const client = net.createConnection({port:9527},()=>{ console.log(name+'連接到服務(wù)器'); client.write(`login:${name}`) client.name = name //開(kāi)始發(fā)送信息 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('已從服務(wù)器斷開(kāi)'); }); client.on('error', () => { console.log('服務(wù)器錯誤'); }); //一直遞歸輸出 function sendMsg(client){ rl.question('',(line)=>{ client.write(JSON.stringify({ name:client.name, msg:line })) sendMsg(client) }) }
服務(wù)端
客戶(hù)端1
客戶(hù)端2
以上就是本文的全部?jì)热?,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站