用例是在 HTML 文档中引用图像 URL(例如 <img src=...>),该 URL 将由浏览器或电子邮件客户端查看,并让图像反映服务器确定的当前状态。图像将由后端(例如servlet)以固定的时间间隔(例如每分钟)动态计算和创建。它有点像视频源,但帧速率很差(每分钟一帧)。;)
我想这里至少必须满足两个关键假设:
生成图像的后端必须能够发送图像的初始版本,然后是图像的后续版本,例如在计算-发送-睡眠循环中,而客户端无需关闭连接。后端将保持与客户端的 HTTP 连接打开并继续发送新版本,直到客户端关闭连接,例如因为它不再显示文档。
获取图像的客户端将检测到后端不断发送图像的新版本并重新绘制它。我不确定服务器是否可以明确地向客户端发出信号,例如设置一个保持活动的响应标头或其他东西 - 或者甚至不需要服务器将保持连接打开。
这些假设合理吗?对于后端,我将使用 servlet 作为概念证明,而前端将是 Firefox 之类的浏览器和 Thunderbird 之类的电子邮件客户端。
我不太确定服务器将如何向客户端发出先前的图像已过时并且可以丢弃并且应该接收并重新绘制新图像的信号,但也许这只是刷新和重新发送新数据的问题?对此的任何指示也将不胜感激。
使用动画 gif 之类的东西是行不通的,因为我无法提前知道图像是什么。换句话说,我无法预先计算图像序列并发送一次。