10月8日至10日与我们一同在纽约市学习关于GraphQL联合和API平台工程的最新技巧、趋势和新闻。请加入纽约市2024年GraphQL峰会
文档
免费开始
自从4.9.0

API参考:订阅回调插件


涵盖了在中使用回调插件的用法有关该协议本身的更多信息,请参阅订阅回调协议

⚠️ 注意:订阅回调协议目前处于预览阶段。在预览期间可能会引入破坏性变更。

使用插件

本文档介绍了ApolloServerPluginSubscriptionCallback插件的选项,您可以从中@apollo/server/plugin/subscriptionCallback导入。

此插件使您的 能够通过订阅操作以使用订阅回调协议. 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()],
});

注意事项

订阅插件实现本质上绕过了的请求生命周期。这意味着在处理回调订阅请求或发送订阅事件时,某些插件钩子(特别是executionDidStartwillResolveField)不会调用。目前没有对回调订阅的指标或跟踪支持。

选项

名称 /
类型
描述
heartbeatIntervalMs

数字

可选项地在毫秒内配置心跳间隔。默认值为5秒,这是GraphOS Router期望的间隔。延长这个间隔可能会使GraphOS Router频繁无效化现有的,不建议这样做。如果您在GraphQL Server和GraphOS Router之间有延迟问题,可能需要缩短这个间隔。

日志记录器

Logger

可选项地提供一个Logger实例以捕获插件的日志。

重试

选项

此插件使用async-retry模块对GraphOS Router的重试失败请求。您可以选择提供一个Options对象以配置重试行为。async-retry的配置选项可以在README

此插件默认提供的配置是

{
retries: 5,
minTimeout: 100,
maxTimeout: 1000,
}

这些默认值可以通过向插件传递一个Options对象来覆盖(并提供其他选项):

new ApolloServer({
plugins: [
ApolloServerPluginSubscriptionCallback({
retry: {
retries: 3,
minTimeout: 1000,
maxTimeout: 5000,
randomize: true,
},
}),
],
// ...
})
上一页
落地页
下一页
创建插件
评价文章评价在GitHub上编辑Edit论坛Discord

©2024Apollo Graph Inc.,以Apollo GraphQL名义。

隐私政策

公司