Pub Sub 的不同实现是不是相互配合?

Posted

技术标签:

【中文标题】Pub Sub 的不同实现是不是相互配合?【英文标题】:Does the differents implementations of PubSub work with each other?Pub Sub 的不同实现是否相互配合? 【发布时间】:2021-08-28 12:17:58 【问题描述】:

apollo-server、apollo-server-express 和 Type-graphql 提供不同的 PubSub 实现,我一直在尝试使用 Apollo-Server 来触发使用 Type-graphql 完成的订阅。

这是我的 Type-Graphql 订阅解析器:


    @Resolver()
    export class TransactionsSubscription 
      @Subscription(
        topics: ( context:  account  ) => 
          return account.id;
        ,
      )
      newNotifications(
        @Root("data") data: Notification,
      ): Notification 
        return data;
      
    

这是我的 TypeORM 事件订阅者:


    @EventSubscriber()
    export class TransactionSubscriber implements EntitySubscriberInterface<Transaction>
        listenTo()
            return Transaction;
        

        async afterInsert(event: InsertEvent<Transaction>)
            
            const account = await Account.findOne(event.entity.accountId);
            if (!account) throw Error("Invalid request");
            const notification = await NotificationRepository().createTransaction(account);
            pubsub.publish(event.entity.accountId.toString(), notification);
            console.log(notification);
        
    

我的问题是,是否可以使用 Apollo-Server 的 pubsub 来触发 Type-graphQL 订阅?

【问题讨论】:

【参考方案1】:

是否可以使用 Apollo-Server 的 pubsub 来触发 Type-graphQL 订阅?

这是相同的PubSubEngine 实现。你检查过文档吗? https://typegraphql.com/docs/subscriptions.html#using-a-custom-pubsub-system

【讨论】:

以上是关于Pub Sub 的不同实现是不是相互配合?的主要内容,如果未能解决你的问题,请参考以下文章

将来自不同项目的服务帐户分配给 Pub/Sub 上的推送订阅

2-redis的pub/sub发布订阅

Ably Pub/Sub 实时 ILoggerSink LogEvent 不工作

列出 Pub/Sub 订阅使用者

Eventbus 和 Google Pub/SUb 之间的区别

Mosquitto pub/sub服务实现代码浅析-主体框架