如何创建用于下载 PDF 并与服务器发送事件共享生成进度的端点

How create an endpoint for downloading a PDF and sharing the generation progress with Server-sent events

我有一个允许用户下载 PDF 的端点。由于PDF生成通常需要20秒以上,我想在我们处理它的同时向前端发送有关PDF生成进度的信息。我从未使用过服务器发送的事件,但我在 Spring 4.3) 中做了一个简单的测试,它工作正常。但是现在我不知道如何使用它来下载PDF。

目前我正在响应中写入 PDF ("application/pdf"),但在这种情况下我将无法 return 对象 SseEmitter.

关于将进度流发送到前端并且仍然能够提供 PDF,您有什么建议吗?我应该使用 websockets 而不是 SSE 吗?也许是两个不同的端点?欢迎任何建议。 :)

我的解决方案使用了两个不同的端点:

第一个端点:提供进度流并将 PDF 内容保存在数据库中 第二个终点:下载PDF

如果我还没有将此 PDF 内容保存在数据库中,我认为我不会对这个解决方案感到满意,但事实确实如此,所以没关系。 :)