构建一个NodeJS-Socket-IO应用程序,将高清视频从Kinect设备流式传输到浏览器。对于我的目的来说,大约有半秒的延迟是可以接受的。然而,这种延迟经常会膨胀到几秒钟,但却找不到原因。
这是否与Socket-IO正在协商的特定连接有关?据我所知,Sacket-IO将根据当前条件选择最佳连接。
有没有其他技巧来减少这个瓶颈?
发布于 2014-12-19 00:30:37
连接出现延迟尖峰是完全正常的。这种方法的问题在于,数据永远不会被丢弃,因为它是通过良好且可靠的TCP连接传输的。您必须弄清楚如何在您的应用程序中处理这一点,可能是在您的编解码器方便的时候删除数据缓冲区。
对于您关于选择最佳连接的评论...这与兼容性有关,而与延迟或任何其他因素无关。
与Wireshark之类的数据包嗅探器友好相处,以查看这些峰值发生时到底发生了什么。您的应用程序应该预料到并且能够处理感知到的延迟的极端尖峰。如果数据包丢失并重新传输,就会发生这种情况。
最好的做法是使用现有的技术,例如WebRTC,它可以以低延迟为您处理所有这些操作。
https://stackoverflow.com/questions/27551057
复制相似问题