2013-06-01 748 views
4

我正在尝试使用Websocket编写接收mjpeg的javacript。 客户端可以选择要播放的视频文件。 {“图像” ::“base64_image”}在JavaScript的Websocket上清除缓冲区

当客户端试图选择不同的视频,会出现问题

服务器通过一个使用JSON如下发送MJPEG作为图像之一。 需要2分钟以上才能切换到新的视频文件。 (服务器和客户端是在不同的国家,但。)

我知道有延迟,但事情是

时间越长我打开一个视频文件时,速度较慢的下一个视频文件了所示。

我想有排队的数据缓冲区中。所以,我的问题是

如何清除JavaScript中的套接字缓冲区?

或者如果它不是关于缓冲区,有什么想法是什么问题?

回答

0

没有任何的示例代码最有可能的问题是,你的WebSocket客户端获取由消防软管来自服务器被淹。

最有可能的,你可以通过具有用于下一帧的WebSocket客户端轮询时,它已准备好处理它这个调整。这样做的好处是,你可以再停止轮询资产X框架中,并从资产Y.

那当然假设问题的框架开始轮询是客户端...如果它是你的服务器上它加载了整个视频等,不能“放手”的视频切换到另一个那么这是在服务器上的另一个问题。

那说,这不是一个很好的用例的WebSockets ......他们都是伟大的小数据包...这只是一个实验?

+1

这会来回发送更慢,双倍的延迟。现在,我正尝试使用服务器的opencv进行图像处理,并将处理后的图像发送给客户端。除了websocket之外,你有什么建议来匹配这项工作吗? –

+0

@ A-letubby - 我目前运行使用了WS这个“投票”机制的WebSocket(WS)应用程序,我想如果你做了一个简单的测试,你会发现,从使用“确认”或“民意调查”的消息了由于连接已经打开,客户端在ws上非常快速。如果您是通过标准HTTP进行轮询,那么是的,因为您正在打开和关闭很多连接,所以速度会很慢。 一般来说,ws不适合发送大图像/数据包,最好重新设想一下,然后沿ws发送文件的URL并让浏览器通过正常通道加载图像。 (XHR) –

+0

@NickSharp嗨,我正在做一些类似于OpenCV和Web-Sockets。你有没有得到关于如何清除或设置缓冲区空间的决议? –