node.js写一个终端聊天室
时间: 2023-07-07 21:36:32 浏览: 154
好的,以下是简单的node.js终端聊天室实现:
1. 创建一个文件夹,命名为`terminal-chatroom`,在该文件夹下创建一个`server.js`文件和一个`client.js`文件。
2. 在`server.js`中,使用`net`模块创建一个TCP服务器,监听指定端口并处理连接请求。代码如下:
```javascript
const net = require('net');
const server = net.createServer(socket => {
// 新客户端连接时触发该事件
console.log(`Client ${socket.remoteAddress}:${socket.remotePort} connected.`);
// 监听客户端发送的数据
socket.on('data', data => {
console.log(`Received data from client ${socket.remoteAddress}:${socket.remotePort}: ${data.toString()}`);
// 广播消息给所有客户端
server.connections.forEach(conn => {
if(conn !== socket) {
conn.write(`Client ${socket.remoteAddress}:${socket.remotePort}: ${data}`);
}
});
});
// 监听客户端断开连接事件
socket.on('end', () => {
console.log(`Client ${socket.remoteAddress}:${socket.remotePort} disconnected.`);
});
});
// 启动服务器,监听指定端口
server.listen(8888, () => {
console.log('Server started, listening on port 8888.');
});
```
3. 在`client.js`中,使用`net`模块创建一个TCP客户端连接到服务器。代码如下:
```javascript
const net = require('net');
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 连接到服务器
const client = net.connect({port: 8888}, () => {
console.log('Connected to server.');
// 给服务器发送消息
rl.on('line', input => {
client.write(input);
});
});
// 监听服务器发送的数据
client.on('data', data => {
console.log(`Received data from server: ${data}`);
});
// 监听连接断开事件
client.on('end', () => {
console.log('Disconnected from server.');
});
```
4. 打开终端,进入`terminal-chatroom`文件夹,先启动`server.js`,再启动多个`client.js`,即可在不同的终端窗口中进行聊天。
阅读全文