Javascript socket io是否自动处理乒乓球?
我一直怀疑socket io是否能自动处理乒乓球?。我知道pingTimeout和pingInterval导致了这种混乱Javascript socket io是否自动处理乒乓球?,javascript,node.js,Javascript,Node.js,我一直怀疑socket io是否能自动处理乒乓球?。我知道pingTimeout和pingInterval导致了这种混乱 为了实现持久的socket.io连接,我们需要ping/pong消息,我是否正确 如果socket.io不能自动处理它,是否可以自行创建乒乓球事件,客户端发送一条乒乓球消息,服务器每隔一段时间发出一条乒乓球消息 Socket.io会自动为您执行此操作。在socket.io循环中,这个概念被称为心跳机制,而不是乒乓球 乒乓球间隔也可以配置为: const httpServ
Socket.io会自动为您执行此操作。在socket.io循环中,这个概念被称为心跳机制,而不是乒乓球 乒乓球间隔也可以配置为:
const httpServer = require("http").createServer();
const io = require("socket.io")(httpServer, {
pingInterval: 10000, // how often to ping/pong.
pingTimeout: 30000 // time after which the connection is considered timed-out.
})
从
ping超时
默认值:5000
此值用于heartbeat机制,该机制定期检查服务器和客户端之间的连接是否仍处于活动状态
服务器发送一个ping,如果客户端在ping超时毫秒内没有应答pong,则服务器认为连接已关闭
类似地,如果客户端在pingInterval+pingTimeout毫秒内没有从服务器接收到ping,则客户端还认为连接已关闭
在这两种情况下,断开连接的原因都是:ping超时
您应该将socket.io看作是WebSockets之上的一个组件。它应该能够自动处理WebSocket连接的琐事,这样您就可以专注于发送/接收消息
现在回答您的问题:
如果socket.io不能自动处理它,我自己创建一个乒乓球事件是否可以,客户端发送一个乒乓球消息,服务器每隔一段时间发送一个乒乓球消息进行响应
是的,您可以,但这完全没有必要,因为socket.io为您提供了这一功能
为了实现持久的socket.io连接,我们需要ping/pong消息,对吗
不,同样,socket.io会为您做这件事
如果socket.io不能自动处理它,我自己创建一个乒乓球事件是否可以,客户端发送一个乒乓球消息,服务器每隔一段时间发送一个乒乓球消息进行响应
又没必要了