当前位置: 首页 > 知识库问答 >
问题:

在angular(关闭/刷新案例)中何时取消订阅SSE事件源事件

堵恺
2023-03-14

我正在我的应用程序中的服务中使用某些EventSource。

我想在浏览器关闭/刷新时关闭所有连接。

我看过这篇文章

现在,这就是我添加到我的服务中的内容。

  @HostListener('window:beforeunload')
  onBrowserClose() {
    this.clearAll();
  }

  clearAll() {
    if (this.eventSource) {
      this.eventSource.close();
    }
    this.callbacks = new Map<string, (e: any) => void>();
  }

有更好的解决办法吗?

共有1个答案

邓昀
2023-03-14

您可以使用ngondestory()取消订阅事件

ngOnDestroy() {
  if (this.eventSource) {
    this.eventSource.close();
  }
  this.callbacks = new Map<string, (e: any) => void>();
}

我想在浏览器关闭/刷新时关闭所有连接。

this angular life cycle method will be called when component is going to destroy
 类似资料:
  • 我有一个Spring靴2.0.0。M7 Spring Webflux应用程序,其中我使用的是Thymeleaf Reactive。 我注意到,在我的微服务上,当我在SSE模式(文本/事件流)下调用一个返回数据流的endpoint时,即使该数据流已被正确处理,也会在该数据流上发生cancel()。 例如,这里有一个简单的控制器endpoint: 以下是我在SSE模式下请求时得到的订阅流量日志: 我们

  • Node.js应用程序可以使用composer-client.BusinessNetworkConnection.onAPI调用从业务网络订阅事件。事件在业务网络模型文件中定义,并由交易处理函数文件中的指定交易处理。有关发布事件的更多信息,请参阅发布事件。 在你开始之前 在应用程序可以订阅事件之前,你必须定义一些事件和发送它们的交易。还必须部署业务网络,并且必须具有可连接到该业务网络的连接配置文件

  • 我编写了一个Spring RestController,它返回一个SseEmitter(对于服务器发送的事件),并向每个事件添加HATEOAS链接。以下是该控制器的一个简化但有效的示例: 问候语课程如下: 此代码运行完美。如果我尝试使用Web浏览器访问REST服务,我会看到显示正确内容和链接的事件。 结果如下所示(每个事件出现在前一个事件之后5秒): 现在我需要调用这个REST服务并从另一个Spr

  • 我的目标是在浏览器选项卡关闭时删除用户cookie。 有可能吗?我可以处理浏览器标签关闭事件没有刷新情况? 如果我在用户刷新页面时使用或事件触发的函数,我不想这样,我只想在关闭选项卡时运行。 我怎样才能做到这一点?

  • 问题内容: 我的目标是在浏览器选项卡关闭时删除用户cookie。 可能吗?我可以在没有刷新情况下处理浏览器选项卡关闭事件吗? 如果我使用或事件,则当用户刷新页面时会触发函数,我不希望这样,我只想在关闭选项卡时运行。 如何在Angular中做到这一点? 问题答案: 可悲的是,这不是一个简单的问题要解决。但这是可以完成的。以下答案是由许多不同的SO答案合并而成的。 简单的部分: 知道该窗口已被破坏。您

  • 我在IBM cloud IoT平台上有一个设备,我想订阅mendix的活动...我正在使用MQTT客户端表单mendix应用商店订阅设备事件。 项目资源管理器: MQTT订阅