您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax |

node+socket实现简易聊天室功能

51自学网 2022-05-02 21:36:23
  javascript

本文实例为大家分享了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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持wanshiok.com。


Vue登录页面的动态粒子背景插件实现
Node.js+express+socket实现在线实时多人聊天室
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1