nodejs一个简单聊天工具

本文介绍了一个基于Node.js的简易聊天室实现方案,包括服务器端和客户端的代码示例。通过监听特定端口,服务器能够接收来自多个客户端的消息,并将消息广播给所有连接的客户端。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**//----------------------------------------------------------------server
const net = require(‘net’);
const server = net.createServer();
const host = ‘localhost’;
const port = 6000;
let count = 0;
const clients = {};
server.on(‘connection’, (client) => {
client.name = ++count;
clients[client.name] = client;
client.on(‘data’, msg => {
console.log(客户端${client.name}说:${msg.toString()});
boardCaster(client, msg);
})
client.on(‘error’, error => {
console.log(‘error is:’ + error)
})
client.on(‘close’, () => {
delete clients[client.name];
console.log(客户端${client.name}下线了)
})
})

function boardCaster(client, msg) {
for (var key in clients) {
clients[key].write(客户端${client.name}说${msg.toString()})
}
}
// 监听服务器
console.log(1)
server.listen(port, host, () => {
console.log(服务器已启动,地址是:http://${host}:${port})
})

**//-----------------------------------------------------------client

const net = require(‘net’);
const socket = net.Socket();
const host = ‘localhost’;
const port = 6000;
const readline = require(‘readline’);
socket.connect(port, host, () => {
socket.write(‘我上线了’)
})
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
socket.on(‘data’, msg => {
console.log(msg.toString())
say()
})
socket.on(‘error’, (error) => {
console.log(‘error is:’ + error)
})
socket.on(‘close’, () => {
console.log(‘客户端已下线’)
})

function say() {
rl.question(‘请输入:’, (answer) => {
if (answer === 88 || answer === ‘bye’) {
socket.destroy()
rl.end()
} else {
socket.write(answer)
}
})
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值