Websockets是否正确的技术用于更新客户端的进度条以及如何实现?

脚本

我正在开发某种基于Web的云存储服务。

一个特点是用户可以启动video文件的转码(以便它们可以在不同的设备上进行stream式传输)。

这需要一些时间,我想显示一个进度条给用户。

我的计划是使用ajax将它写入数据库。 ajax调用返回数据库中作业的ID,这个ID将被用作通知的通道。

所以当作业提交时,客户端在一些自己托pipe的websocket服务器上订阅频道“job-databaseID”。

转码工作人员然后定期从数据库表中select待处理的作业并处理它们。 在处理过程中,他们将自己的进度推送到websocket服务器到客户端正在监听的同一个通道。

前端应用程序应该是一个JavaScript和jQuery的网站。 后端应该用PHP和MySQL以及apache或nginxnetworking服务器进行编程。

这是使用websockets的正确方法吗? 通常我会看到在一对多通知场景中使用的websocket。 这是一个一对一的通知情况。 有没有更好的替代这种单向信息stream?

另外我经常看到Websocket场景的频道或多或less是长寿的 。 这是非常短暂的 。 它会maby更有意义,使每个用户一个频道?

什么将是一个很好的websocket服务器用于这种使用? 理想情况下,渠道将被自动删除一旦没有客户端连接到它,并自动创build相同的方式,所以我不需要照顾。

当你通过ajax发起你的请求时,你有没有看过server Sent Events ,所以你没有进行双向通信; 只有当服务器有更新时才需要服务器推送更新