GPi*_*kiy 6 javascript websocket node.js socket.io
问题:我有一个安全摄像头,它只能远程显示当前帧,需要我每隔一段时间轮询此帧以获得类似视频的流。为了同步向所有客户端显示的帧,我使用 Socket.io 每 500 毫秒将帧作为 base64 字符串从服务器流式传输。我遇到的问题是,在我的台式计算机上,一切正常,但在较慢的设备(手机和平板电脑)上,提要会停在一帧上并等待一段时间(大约 40-60 秒)然后一堆帧冲进去试图赶上。从那时起,馈送结束了 10 秒的延迟。
采取的步骤/信息/背景:
ping timeout,它重新连接成功,然后一切正常。transports: [ 'websocket' ], allowUpgrades: false或pingInterval: 500, pingTimeout: 60000, upgradeTimeout: 30000, timeout: 30000,但这些都没有帮助。socket.sendBuffer = [];到我的套接字连接事件中,以查看延迟后的图像冲击是否在此缓冲区中以某种方式出现,但它仍然发生。fetch在此延迟期间有几个请求工作正常。问题:当时 websocket 没有发生任何事情时,是什么导致了延迟?为什么在页面加载后正好 10 秒?如果它的系统资源/处理能力相关,为什么给它自己的线程没有帮助?当 Socket.io 的文档说在断开连接期间没有将任何发射保存在缓冲区中时,延迟之后是如何出现大量图像的?
编辑:这似乎是 Chrome 的问题。Firefox 和 Edge 没有这个问题。Edge 有其自身的问题,但这是意料之中的。
| 归档时间: |
|
| 查看次数: |
1037 次 |
| 最近记录: |