feathers客户端如何订阅收听频道?

How to subscribe and listen to channels with feathers client?

请为我指明正确的道路。我为客户端使用 angular 并通过以下方式获取数据:

  private getOrders(query: {}) {
    return from(this._feathers.service('orders').find({ query }));
  }

这很好用,我在 return 中得到了一个可观察值。

但我不知道如何在客户端获取消息。 例如,channels.ts 中的应用程序模板提到了这样的内容:

  app.service('messages').publish(() => {
    return [
      app.channel(`userIds/${data.createdBy}`),
      app.channel(`emails/${data.recipientEmail}`)
    ];
  });

嗯,我怎样才能从客户端获取 emails/${data.recipientEmail} 的数据? 语法是什么?

事情其实很简单!

我的困惑是我有过 socket.io 的经验,并且我为当时的每项服务创建了一个频道。

在羽毛中,通道是发送数据的一种方式。因此,每项服务都可以 post 到任何频道,这完全取决于您订阅的频道! 在客户端,我对如何访问该数据感到困惑,认为我需要一个 'custom' 通道名称和方法。这实际上并不重要,因为客户端订阅了不同的频道,最终数据确实来自该服务中的服务和方法!

我希望这是有道理的,并为像我这样的人消除困惑。 :)

这篇文章解决了问题:https://blog.feathersjs.com/feathersjs-channel-subscriptions-647c771ca6c8