如何从Angular订阅到NestJs Observable?

问题描述 投票:1回答:1

我正在使用Firestore中的数据库7进行应用程序,但为了避免云功能,我决定使用NestJs(5)后端,并使用firebase-admin事务来保持嵌入数据的同步。当我进行咨询时,一切似乎都运作良好,我的nestjs后端负责收集和加入它们以响应我的前端应用程序。但在这里我的真实问题是:我需要做些什么来使我的后端在nestjs中返回一个可观察的角度前端?

我想要实现的是我的前端通过我在NestJs中的后端检测火器实时的变化。

简介我正在使用Firestore中的数据库7进行应用程序,但为了避免云功能,我决定使用NestJs(5)后端,并使用firebase-admin事务来保持嵌入数据的同步。当我进行咨询时,一切似乎都运作良好,我的nestjs后端负责收集和加入它们以响应我的前端应用程序。但在这里我的真实问题是:我需要做些什么来使我的后端在nestjs中返回一个可观察的角度前端?

我想要实现的是我的前端通过我在NestJs中的后端检测火器实时的变化。

我理解,从NestJs我们可以返回作为一个可观察的结果,以便从角度你实时订阅变化。

Firestore - > Nextjs(在Firebase函数中运行) - > Angular(.subscribe)

NestJs中的当前功能:

async getAllAdministratorsForFirestore(): Promise<Administrator[]> {

    const administratorsSnapshot = await administratorsRef.get();
    const administrators = [];
    administratorsSnapshot.forEach(doc => {
      administrators.push(mapFirestoreDocs(doc.id, doc.data()));
    });

    return administrators;
  }

Angular的当前消费者:

subscribeToAdministratorsForNestJs() {

    this.http.get(nestJsEndPointUrl, options).subscribe((administrators) => {
      this.administrators = administrators;
    })
  }

我想要实现的是我的前端通过我在NestJs中的后端检测火器实时的变化。

但是我该怎么办呢?

angular google-cloud-firestore observable subscribe nestjs
1个回答
1
投票

要实现您想要的功能,您需要NestJs中包含的@nestjs/websockets包和Angular中的ngx-socket-io包。

这样,当有人连接到生成NestJs的@WebSocketServer () server并通过该方法发送它们时,您可以订阅firestore数据库发出的更改。

client.broadcast.emit ('change', changes);

并且从角度只有您订阅事件更改:

this.socket.fromEvent ('change'). subscribe ((changes) => console.log (changes));

这就是它;),当连接到该套接字的用户为0时的建议,取消订阅firestore数据库中的更改。

© www.soinside.com 2019 - 2024. All rights reserved.