Node.js 切换选项卡时Socket.emit(Socket.io)是否会失去性能?

Node.js 切换选项卡时Socket.emit(Socket.io)是否会失去性能?,node.js,socket.io,streaming,delay,Node.js,Socket.io,Streaming,Delay,我正在用node.js和socket.io编写一个简单的网络语音聊天,我注意到在这样做时: socket.emit("chunk", JSON.stringify(pcm)) 并且,如果浏览器不聚焦正在运行的选项卡,它会保存应该发送的数据,然后同时发出5或6个数据块(这会导致node.js中出现峰值,并在流中造成巨大延迟) 但是,使用时不会发生这种情况。有办法解决这个问题吗?我更喜欢使用socket.io而不是 比你强 您是否使用计时器从无人值守选项卡发送数据?许多现代浏览器会减慢或停止非前台

我正在用node.js和socket.io编写一个简单的网络语音聊天,我注意到在这样做时:

socket.emit("chunk", JSON.stringify(pcm))
并且,如果浏览器不聚焦正在运行的选项卡,它会保存应该发送的数据,然后同时发出5或6个数据块(这会导致node.js中出现峰值,并在流中造成巨大延迟)

但是,使用时不会发生这种情况。有办法解决这个问题吗?我更喜欢使用socket.io而不是


比你强

您是否使用计时器从无人值守选项卡发送数据?许多现代浏览器会减慢或停止非前台选项卡中的计时器(出于性能和电池消耗的原因),而不是计时器。无论何时触发,我都会使用它,但我对WebSocket使用相同的代码,而且它工作正常,我唯一更改的是emit方法查看Github上的engine.io代码(socket.io用于其传输),会有计时器参与ping和发送数据。我不知道背景标签的计时器慢下来是不是把你搞砸了。这听起来像是你可能想要报告的问题。