当您打开chrome dev工具时,在我们的websocket的“frames”选项卡中,您会注意到定期数据发送 - 接收(客户端请求称为“ping”,服务器响应称为“pong”)。 好吧,在socket.io v.1.4.5中你会看到这些:
2
3
2
3
2
3
等等。我可以在这些定期交易中附加一些数据吗?我想这样做:
2['ping',{data:data}]
3['pong',{data:data}]
我已经发现:
socket.emit('ping',{})
本身socket.on('ping',function)
重点是让那些乒乓球更有意义并且一石二鸟。
答案 0 :(得分:1)
我并不熟悉socketeio或websockets的引擎盖工作,但我真的怀疑你可以扩展socketio发送的那些轮询事件。最重要的是,我认为修补那些对你的socketio解决方案不健康,最好保持原样,并根据需要实现你的自定义事件。
P.S。 socketio不会阻止您使用“ping”和“pong”作为自定义事件名称。仔细检查您的代码:)
答案 1 :(得分:0)
只需添加oleksii-shnyra发布的答案。
根据Socket.IO Docs,有一些保留事件,不应该使用。
如果您使用的是socket.io-client,则可以听取Ping' Ping' &安培; '傍'客户端的事件。你会看到Pong'事件。例如下面的代码,
var socket = require('socket.io-client')('Some_IP_Address:PORT');
socket.on('connect', function() {
console.log("Client is Connected");
});
socket.on('pong', function(data) {
console.log('Received Pong: ', data);
});
我在控制台中收到了以下输出。
Client is Connected
Received Pong: 143
Received Pong: 143
Received Pong: 148
Received Pong: 147
根据文件,' 143'是' ms'因为' ping'是从客户发送的。
注意:您可以收听' Ping'事件也是如此,但它通常会返回空数据。
但是,您无法在服务器端收听Ping / Pong事件。