跳至主要内容

如何检查 Socket.IO 连接的延迟

您可以通过向服务器发送 ping 事件并在另一端 确认它 来测试应用程序的延迟

客户端

import { io } from "socket.io-client";

const socket = io("wss://example.com");

setInterval(() => {
const start = Date.now();

socket.emit("ping", () => {
const duration = Date.now() - start;
console.log(duration);
});
}, 1000);

服务器

import { Server } from "socket.io";

const io = new Server(3000);

io.on("connection", (socket) => {
socket.on("ping", (callback) => {
callback();
});
});

请注意,大多数延迟可能来自 **网络**,而不是 Socket.IO(它与底层 WebSocket 连接的开销大致相同)。

延迟会受到很多因素的影响,其中最主要的是服务器和客户端之间的距离。

也就是说,与 WebSocket 相比,卡在 HTTP 长轮询中的客户端将看到更高的延迟,因为后者在服务器和客户端之间保持打开的 TCP 连接,并且不需要在每次请求时发送 HTTP 标头。

相关