使用GraphQL的subscription订阅服务器的通知

305 阅读1分钟

首先在schema.graphql里定义一个Deal类型:

我们模拟的场景是:每当有新的交易发生时,我们期望从服务器端收到通知。

创建一个新的subscription,字段为deal,类型为刚才定义的Deal:

这个subscription的实现,简单采取每2秒钟打印一次通知:


const deal = {
      subscribe: (parent, args, { pubsub }) => {
        const channel = Math.random().toString(36).substring(2, 15) // random channel name
        setInterval(
          () => pubsub.publish(channel, { deal: {description: "New deal!" }}
        ), 2000);
        return pubsub.asyncIterator(channel)
      },
    }

module.exports = {
  deal,
}

接下来,就会每隔2秒看到New Deal的通知了:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":