net模块创建的是tcp服务,我们可以下载一个putty来连接服务器。
原理非常简单,我们使用net.createServer创建一个服务,回调函数里面的socket是一个可读可写流。
我们可以监听data来事件来读,同样也可以调用write方法来写。我们简单的使用客户端的ip+port来标识用户。
具体详情可以看一下代码,非常简单吧。
//使用net 模块 创建一个聊天室
//实现广播 私聊 更改用户名 显示当前在线名单
//b:消息 广播
// c:nickname:消息 私聊nickname
//l 展示名单
// n:newname 更换用户名
const net = require("net");
let users = {}; // 保存所以用户的信息
const server = net.createServer(function (socket) {
const id = socket.remoteAddress + socket.remotePort; //ip地址 + 端口号 作为key
users[id] = {
nickname: "匿名",
socket
};
server.getConnections((err, connect) => {
socket.write(`你好,当前在线用户${connect}人\r\n`)
})
socket.setEncoding("utf8");
socket.on(&#