首先在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的原创文章,请关注公众号"汪子熙":