nodejs 实现即时通讯
1. 创建一个空文件夹, 安装包
npm init -y
npm i nodejs-websocket --save
2. 服务端代码, 在当前目录创建 app.js 文件
var ws = require("nodejs-websocket"); console.log("开始建立连接..."); const socketPool = []; const socket = ws.createServer(function (conn) { conn.on("text", function (str) { console.log(str); const params = JSON.parse(str); console.log(params); const { type, from, to, message } = params; // 创建连接通知 if (type === 1) { const s = { name: from, conn, }; socketPool.push(s); console.log(socketPool); } else if (type === 2) { const index = socketPool.findIndex((i) => i.name === to); if (index >= 0) { socketPool[index].conn.sendText( JSON.stringify({ from: to, to: from, message, }) ); } } }); conn.on("close", function (code, reason) { console.log("关闭连接", reason); }); conn.on("error", function (code, reason) { console.log("异常关闭"); }); }); socket.listen(8001, () => { console.log("WebSocket建立完毕"); });
3. 用户端1, 在任意位置创建 html1
user-张三
4. 任意位置创建 HTML2
user-李四
5. 启动流程
在app.js目录, cmd 运行 node app.js 提示
WebSocket建立完毕 说明长连接创建完成 已不同的浏览器分别打开 html1 和 html2 就能愉快的发送消息了