我有一个 Java 应用程序,并且想向 Web 客户端提供一个 BufferedImage(每秒更新几次)。
我首先查看了 HttpServer(JDK 6 的一部分)。我已经实现了一个 HttpHandler,并在句柄(HttpExchange 交换)调用中获取最新的 BufferedImage 并使用交换引用将其发送出去。
我可以使用我的网络浏览器查看通过交换发送的图像,当我刷新浏览器时,我可以观察到图像更新(因为我的应用程序正在更新 BufferedImage)。
对于下一步,我想在浏览器中不断更新图像(无需手动刷新网页)。似乎带有关联 HttpHandler 的 HttpServer 并没有真正设置为执行此操作(只是一次请求/响应)。我已经开始阅读有关 Servlet 的信息,并且正在研究使用 Jetty。
我想知道我在研究 Servlet 方面是否走在正确的轨道上,或者有没有办法将 BufferedImage 更新“驱动”到连接到我的 HttpServer 的 Web 客户端?
提前致谢。
我的句柄方法的代码片段打击:
public void handle(HttpExchange exch) throws IOException {
BufferedImage image = fImageProvider.getLatestImage();
ByteArrayOutputStream output = new ByteArrayOutputStream(SIZE);
ImageIO.write(image, IMAGE_CODEC, output);
byte[] byteArray = output.toByteArray();
exch.sendResponseHeaders(HttpURLConnection.HTTP_OK, byteArray.length);
exch.getResponseBody().write(byteArray);
exch.close
}