尧图精选

如何用 eio-latency 示例测量 Socket.IO 连接的往返延迟

🕒 发布时间:2026/9/9 22:38:09 📁 来源:尧图网络
如何用 eio-latency 示例测量 Socket.IO 连接的往返延迟【免费下载链接】socket.ioBidirectional and low-latency communication for every platform项目地址: https://gitcode.com/gh_mirrors/so/socket.io如果你在评估或调优 Socket.IO 的连接质量需要知道一条真实连接上的消息往返要花多少毫秒可以直接使用仓库自带的eio-latency示例。它是一个最小的 ping/pong 延迟测量工具启动本地服务器浏览器页面持续向服务器发送 ping 消息服务器原路返回 pong页面把每个往返的耗时实时显示出来并用曲线图记录延迟随时间的变化。示例的位置与工作原理示例位于 examples/latency 目录由四部分组成index.js服务器端基于 Express 创建 HTTP 服务器并通过require(engine.io).attach(server)挂接 Engine.IO。它对连接收到的每条消息都回复io.on(connection, (socket) { socket.on(message, () { socket.send(pong); }); });监听端口取自环境变量const port process.env.PORT || 3000;。index.html页面骨架包含显示当前延迟的span idlatency、显示当前传输方式的h2 idtransport以及用于绘制曲线图的canvas idchart。public/index.js测量逻辑连接建立后发送ping并记录时间收到回复后计算new Date() - last得到毫秒数写回页面并把数据点追加到 Smoothie 曲线图每次收到回复后隔 100ms 再发下一次 ping形成持续的往返采样。package.json声明依赖包括engine.io^6.4.2、engine.io-client^4.1.4、express^4.19.2、enchilada0.13.0和smoothie1.19.0。需要说明的是该示例直接基于 Engine.IOSocket.IO 底层的传输引擎建立连接测量的是这条传输通道上的消息往返耗时而不是某个业务层的 Socket.IO 事件回调开销。启动示例并读取延迟数值按 README 的说明操作。进入示例目录后先安装依赖再启动服务器$ npm install$ node index服务器启动后把浏览器指向localhost:3000如果你的环境设置了PORT环境变量服务器会使用PORT指定的端口而不是 3000需要把浏览器地址改为对应的端口。在页面上可以直接读到三种信息标题旁的延迟数值每完成一次 ping/pong 往返#latency区域会刷新为形如123ms的当前耗时页面刷新的是最新一次往返的值不是平均值传输方式#transport显示当前连接使用的 transport 名称取自socket.transport.name连接未建立时显示(connecting)断开时显示(disconnected)延迟曲线如果浏览器支持 canvasSmoothie 图会以 1 秒的流式刷新把历次往返耗时画成曲线可以观察延迟的波动而不是单个快照值。使用时的边界说明采样频率固定为收到回复后间隔 100ms 再发下一次 ping由 public/index.js 中的setTimeout(send, 100)决定页面上显示的数值是单次往返的实测值会随网络与负载持续变化不要把它当作固定基准。这是一个单连接演示浏览器端只建立一个连接测量的是本机浏览器到本地服务器或你自己部署地址之间这条链路的往返情况。服务器端除 ping/pong 外没有额外逻辑index.js 里静态文件由express.static和enchilada提供/engine.io.min.js从安装的engine.io-client包中直接取用因此必须先完成npm install再运行。【免费下载链接】socket.ioBidirectional and low-latency communication for every platform项目地址: https://gitcode.com/gh_mirrors/so/socket.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →