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

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

使用GraphQL的subscription订阅服务器的通知_第1张图片

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

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

使用GraphQL的subscription订阅服务器的通知_第2张图片

这个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,
}
使用GraphQL的subscription订阅服务器的通知_第3张图片 使用GraphQL的subscription订阅服务器的通知_第4张图片

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

使用GraphQL的subscription订阅服务器的通知_第5张图片

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

你可能感兴趣的:(Kubernetes)