node+socket實現(xiàn)簡易聊天室功能
更新時間:2021年07月11日 13:12:50 作者:言小溪
這篇文章主要為大家詳細(xì)介紹了node+socket實現(xiàn)簡易聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了node+socket實現(xiàn)簡易聊天室的具體代碼,供大家參考,具體內(nèi)容如下
服務(wù)端
const net = require('net') const server = net.createServer() //用戶列表 let clients = [] //監(jiān)聽連接 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}發(fā)生錯誤`) }) }) server.on('error',(err)=>{ console.log('服務(wù)器錯誤',err) }) server.on('close',()=>{ console.log('服務(wù)器關(guān)閉') }) server.listen(9527,()=>{ console.log("服務(wù)器開啟") })
客戶端
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 //開始發(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ù)器斷開'); }); client.on('error', () => { console.log('服務(wù)器錯誤'); }); //一直遞歸輸出 function sendMsg(client){ rl.question('',(line)=>{ client.write(JSON.stringify({ name:client.name, msg:line })) sendMsg(client) }) }
演示
服務(wù)端
客戶端1
客戶端2
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- NodeJS實現(xiàn)一個聊天室功能
- nodejs+express搭建多人聊天室步驟
- Nodejs實現(xiàn)多房間簡易聊天室功能
- 基于Nodejs利用socket.io實現(xiàn)多人聊天室
- Node.js websocket使用socket.io庫實現(xiàn)實時聊天室
- Node.js利用Net模塊實現(xiàn)多人命令行聊天室的方法
- Node.js中使用socket創(chuàng)建私聊和公聊聊天室
- AngularJS+Node.js實現(xiàn)在線聊天室
- 使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
- nodejs實現(xiàn)的一個簡單聊天室功能分享
相關(guān)文章
nodejs中art-template模板語法的引入及沖突解決方案
本篇文章主要介紹了nodejs中art-template模板語法的引入及沖突解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11node.js與C語言 實現(xiàn)遍歷文件夾下最大的文件,并輸出路徑,大小
這篇文章主要介紹了node.js與C語言 實現(xiàn)遍歷文件夾下最大的文件,并輸出路徑,大小的相關(guān)資料,需要的朋友可以參考下2017-01-01如何在 Node.js 中使用 axios 配置代理并實現(xiàn)圖片并發(fā)下載
這篇文章主要介紹了如何在Node.js中使用axios配置代理并實現(xiàn)圖片并發(fā)下載,本文通過實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-07-07基于Express+multer實現(xiàn)文件上傳功能
Multer是Node.js中的一個第三方包,或者說是第三方中間件,主要用于是實現(xiàn)文件上傳的功能,本文小編講給大家詳細(xì)介紹一下基于Express+multer來實現(xiàn)文件上傳功能,文章通過代碼示例和圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11