API参考:订阅回调插件
此文档涵盖了在Apollo Federation中使用订阅回调插件的用法与GraphOS Router。有关该协议本身的更多信息,请参阅订阅回调协议。
⚠️ 注意:订阅回调协议目前处于预览阶段。在预览期间可能会引入破坏性变更。
使用插件
本文档介绍了ApolloServerPluginSubscriptionCallback
插件的选项,您可以从中@apollo/server/plugin/subscriptionCallback
导入。
此插件使您的 GraphQL服务器能够通过订阅操作以使用订阅回调协议. GraphOS Router使用此协议执行订阅操作并从由路由器指定的URL接收更新。
此功能只能通过在您的ApolloServer
构造函数中提供ApolloServerPluginSubscriptionCallback
实例来启用:
import { ApolloServer } from '@apollo/server';import { ApolloServerPluginSubscriptionCallback } from '@apollo/server/plugin/subscriptionCallback';const server = new ApolloServer({typeDefs,resolvers,plugins: [ApolloServerPluginSubscriptionCallback()],});
import { ApolloServer } from '@apollo/server';import { ApolloServerPluginSubscriptionCallback } from '@apollo/server/plugin/subscriptionCallback';const server = new ApolloServer({typeDefs,resolvers,plugins: [ApolloServerPluginSubscriptionCallback()],});
注意事项
订阅插件实现本质上绕过了Apollo Server的请求生命周期。这意味着在处理回调订阅请求或发送订阅事件时,某些插件钩子(特别是executionDidStart
和willResolveField
)不会调用。目前没有对回调订阅的指标或跟踪支持。
选项
名称 / 类型 | 描述 |
---|---|
| 可选项地在毫秒内配置心跳间隔。默认值为5秒,这是GraphOS Router期望的间隔。延长这个间隔可能会使GraphOS Router频繁无效化现有的订阅,不建议这样做。如果您在GraphQL Server和GraphOS Router之间有延迟问题,可能需要缩短这个间隔。 |
| 可选项地提供一个 |
| 此插件使用 此插件默认提供的配置是
这些默认值可以通过向插件传递一个
|