Nodejs + MongoDB搭建一个简易的聊天室场景

聊天室场景

在这里插入图片描述
服务器启动后,客户端1 连接服务器端 并发送一条消息为:hello ,客户端1 能看到自己发送的消息。当客户端2 连接进来后 也发送了一条文字为 hello 的消息,客户端1 能接收到 客户端2 发来的消息。客户端2 亦之。
这套流程就用到了Nodejs中的net模块

简易聊天室搭建

首先建立一个服务器端文件

//引入net模块
const net = require("net")
//创建服务器
const chatServer = net.createServer()

//定义一个空对象,用来存放用户名跟消息
let clientMap = {} 
// 用来记录哪台客户端发送的消息 类似于给客户端编写一个ID属性
let i = 0


//创建连接 客户端连接用
chatServer.on("connection",(client)=>{
    client.name = ++i;
    clientMap[client.name] = client;

    //服务端发过来的消息
    client.on("data",message=>{
        //封装一个函数。将客户端发来的消息广播给连接到这台服务器的所有客户端
        boardcast(client,message)
        
    })

    //客户端异常终止,服务器给与响应
    client.on("error",()=>{
        console.log(client.name + "下机了")
    })


})


//服务器广播的函数封装
function boardcast(client,message){
    for(var key in clientMap){
        clientMap[key].write("\n" + client.name + "说" + message)
    }
}

//服务器端口监听
chatServer.listen(9000)

然后建立一个客户端文件

//引入net模块
const net = require("net")
const readline = require("readline")

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

//创建client实例
const client = new net.Socket()

//连接服务端
client.connect(9000,"localhost",()=>{
    client.write("hello")
})

//客户端接收服务端发来的消息

client.on("data",message=>{
    console.log(message.toString())
    say()
})
//往服务器发送消息
function say(){
    rl.question("内容:",(str)=>{
        client.write(str)
    })
}
//服务器异常,报错
client.on("error",()=>{
    console.log("服务器出错")
})

然后右键文件
在这里插入图片描述
输入nodemon server.js
在这里插入图片描述
没有报错,再另外打开一个终端,在新打开的终端回车输入 nodemon .\client.js
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再打开一个终端,再运行一个客户端再次输入 nodemon .\client.js
在这里插入图片描述

至此,一个简易聊天室就搭建好了
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值