Angular 8 PWA 应用程序将服务器发送的事件永远置于挂起状态

标签 angular progressive-web-apps server-sent-events

似乎只有当应用程序在 Angular 8 中编译用于生产(PWA)时,才会导致浏览器从服务器接收 SSE 事件时出现问题。

如果我在开发模式下运行应用程序(只需使用ngserve),事情就会按预期工作。所以我最初的想法是 PWA 在某种程度上是问题的根源。

我尝试在 ngsw-config.json 中排除 api /v1/events 上的缓存,但没有区别:

{
    "name":"api",
    "urls": ["/api/v1/**"],
    "cacheConfig": {
      "maxSize": 0,
      "maxAge": "0u",
      "strategy": "freshness"
    }
  }

有人遇到过类似的问题并成功解决了吗?

最佳答案

我想我已经明白了。我只是添加了对我的 API /v1/events 的调用绕过 Service Worker 的查询参数:/v1/events?ngsw-bypass=true .

我在 Angular web page 上找到了答案

In some cases, you may want to bypass the service worker entirely and let the browser handle the request instead. An example is when you rely on a feature that is currently not supported in service workers (e.g. reporting progress on uploaded files). To bypass the service worker you can set ngsw-bypass as a request header, or as a query parameter. (The value of the header or query parameter is ignored and can be empty or omitted.)

关于Angular 8 PWA 应用程序将服务器发送的事件永远置于挂起状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65462397/

相关文章:

node.js - 如何使用模块中的 Gulp : Error: Multiple anonymous System. 注册调用以 Angular 2 加载系统导入中的捆绑文件

reactjs - Service Worker (Workbox) 不会在重新加载时将路由委托(delegate)给我们的 SPA

server-sent-events - Koa SSE 连接重新连接

html - Microsoft 是否有 HTML5 服务器发送事件的等效项?

加载组件时未调用 Angular Material 自动完成更改事件?

angular - Ionic2 StorageModule/更新列表

templates - dart angular2-模板中的迭代

service-worker - 在 Service Worker 的获取处理程序中限制 30 倍左右的重定向

javascript - 使用 service worker 缓存指向另一个页面的链接

c# - 在 C# 中实现发送服务器发送的事件(没有 ASP.NET/MVC/...)