express 下搞一个 websocket 长连接

安装模块

npm i express

npm i express-ws

新建文件app.js

先安排源码 监听端口 7777

javascript 复制代码
var express = require('express')
var app = express()
require('express-ws')(app)

var port = 7777
var clientObject = {}
app.ws('/', (client, req) => {
    // 连接
    var key = req.socket.remoteAddress + "_" +  req.socket.remotePort
    clientObject[key] = {
        cli:client,
        heartBeat:1,
    }
    // 消息
    client.on('message', (message) => {
        client.send("收到你的消息了" + message)
    })
    // 关闭
    client.on('close', () => {
        var key = req.socket.remoteAddress + "_" +  req.socket.remotePort
        if(clientObject[key]){
            delete clientObject[key]
        }
    });
    // 错误
    client.on('error', () => {
    });
})

app.get('/', (req, res) => {
    res.send("hello 2023");
});
app.listen(port);


// 心跳
setInterval (() => {
    var time = Date.now()
    for(var key in clientObject){
        var client = clientObject[key].cli
        var heartBeat = clientObject[key].heartBeat
        clientObject[key].heartBeat += 1
        try {
            var sData = {
                rspdata:{
                    heartBeat:heartBeat,
                    time:time,
                },
            }
            client.send(JSON.stringify(sData))
        } catch(e) {
        }
    }
}, 1000*3);

app.get('/', (req, res) => {

res.send("hello 2023");

});

测试下网页的显示

再搞个模块的客户端 测下心跳

Websocket在线测试-Websocket接口测试-Websocket模拟请求工具

再试试前端主动发消息的

相关推荐
超级无敌谢大脚4 分钟前
前端包管理工具进化论:npm vs yarn vs pnpm 深度对比
前端·npm·node.js
reddingtons38 分钟前
在Ubuntu下通过Docker部署Redis服务器
服务器·ubuntu·docker
Henry_Wu0011 小时前
ubuntu20.04 突破文件数限制
服务器·网络·数据库
秋淮安1 小时前
Web核心、HTTP
运维·服务器
End9282 小时前
VMware中的linux常用指令
linux·运维·服务器
i建模2 小时前
Windows前端开发IDE选型全攻略
前端·ide·windows·node.js·编辑器·visual studio code
hamburgerDaddy12 小时前
从零开始用react + tailwindcs + express + mongodb实现一个聊天程序(三) 实现注册 登录接口
前端·javascript·mongodb·react.js·前端框架·express
稳联技术3 小时前
汽车制造又一革新:Profinet-EtherCAT实现高精度激光焊接
服务器·汽车·制造
独醉花满楼3 小时前
华为交换机堆叠方法
运维·服务器·华为
梦想是当米虫4 小时前
自学Linux系统软件编程第四天
linux·运维·服务器