Aji*_*ith 5 websocket node.js socket.io
我知道socketio客户端每隔25秒发送一次ping(心跳间隔)并从服务器返回响应.我想在服务器端从客户端打印此ping,并且如果可能,还要捕获节点服务器发回的ping响应.
我试过用
socket.on("ping", function(data) {
console.log("received ping");
});
socket.on("pong", function(data) {
console.log("received pong");
});
Run Code Online (Sandbox Code Playgroud)
在客户端和服务器端,但我无法捕获它们
此代码段可以在服务器上运行。底层engine.io 服务器套接字的文档指定了事件侦听器packet和的参数packetCreate,该对象位于socket.conn:
socket.conn.on('packet', function (packet) {
if (packet.type === 'ping') console.log('received ping');
});
socket.conn.on('packetCreate', function (packet) {
if (packet.type === 'pong') console.log('sending pong');
});
Run Code Online (Sandbox Code Playgroud)
原来这些事件的 engine.io 文档是错误的。的参数是不type和data,它是一个参数packet包含属性type和data,根据所述源为所述packet事件和所述packetCreate事件。