前端通信
- 基于后端的通信( 后端完成 )( pc端用 )
- Node.js中有一个net模块
- 使用终端( shell )作为客户端
- 思维流程
/*
主服务器:
1.创建服务器
2.连接客户端
3.获取客户端发来的信息
4.将客户端发来的信息展示到自己的终端上(广播)
*/
// 引入net模块
const net = require('net');
// 1.创建服务器
const server = new net.createServer();
const port = 8000;
const hostname = 'localhost';
const clients = {}; //用来存储多个客户端
let count = 0; // 用来给客户端编号的
// 2.连接客户端
server.on('connection', client => { //client指的是连接的客户端
client.name = ++count;
clients[client.name] = client;
// 3.获取客户端发来的信息
client.on('data', msg => {
console.log(`客户端${client.name}说:${msg.toString()}`);
boardcast(client, msg.toString())
});
client.on('error', error => {
console.log(`error is ${error}`)
});
client.on('close', () => {
delete clients[client.name];
console.log(`客户端${client.name} closed~~`)
})
});
// 4.将客户端发来的信息展示到自己的终端上(广播)
// 封装一个广播函数用于广播客户端发来的消息
function boardcast(client, msg) { // client为客户端 msg为客户端发来的消息
// 把所有客户端发送来的消息都展示在聊天室内
for (var key in clients) {
clients[key].write(msg); // 将每一个客户端的消息都写入界面
}
}
// 监听服务器
server.listen(port, hostname, () => {
console.log(`The server is running at: http://${hostname}:${port}`)
});
/*
客户端:
1