Apollo 订阅 PubSub 未触发侦听器
Posted
技术标签:
【中文标题】Apollo 订阅 PubSub 未触发侦听器【英文标题】:Apollo Subscription PubSub not triggering Listener 【发布时间】:2017-03-30 21:58:08 【问题描述】:工作让订阅在阿波罗工作。我的网络套接字设置正确,我可以看到我正在连接,因为我看到它流入了 pubsub 模块。虽然我认为我的订阅方式有些问题,因为我发布时服务器没有触发响应。
对命名方面的任何混淆表示歉意,因为我将它用于称为订阅的东西。
Graphql 订阅
subscription subscriptionsUpdated($userId: String!)
subscriptionsUpdated(user: $userId, type:ROOM, open:true)
id,
parent
... on Rooms
id
GraphQLType
subscription: new GraphQLObjectType(
name: `subscriptions`,
fields:
subscriptionsUpdated:
type:Subscriptions.type,
args:
parent: type: GraphQLString,
type: type: ContentTypes ,
open: type: GraphQLBoolean ,
user:type: GraphQLString ,
,
resolve:(source, args)=>
console.log('it worked and stuff');
return ;
,
)
订阅管理器和设置功能:
import schema from '../graphql/index.js';
const subscriptionManager = new SubscriptionManager(
schema,
pubsub,
setupFunctions:
subscriptionsUpdated: (options, args) => (
subscriptionsUpdated: (comment)=>
return true;
,
),
,
);
在我的突变中(我可以看到这种射击)
pubsub.publish('subscriptionsUpdated', doc);
随着事件触发,subscriptionsUpdated 解析函数/或设置函数不应该触发吗?
我已经查看了有关该主题的 githunt 示例和中等帖子,但仍在努力使最后一部分正常工作。
任何帮助或见解都会很棒!
【问题讨论】:
订阅最初的调试可能有点棘手,所以我会尽可能简化。您是否尝试过删除 setupFunctions?如果频道与***订阅字段同名,我认为它们是可选的。 是的,尝试删除设置功能。还是没有骰子。我在想也许我的 graphql 订阅查询设置错误,但不确定。继续挖掘。 【参考方案1】:我希望我有一个更好的答案来解决我的问题。我一直在调整一些东西,我不确定我做了什么让它工作。嗯……:/
如果您在此过程中确实遇到了困难,请深入了解 graphql 订阅包。您至少可以更好地了解事物的运行方式。
事件订阅正在发生:在line 40 of publish and subscribe methods of graphql-subscribe周围添加一些调试/日志
监控/记录监听器函数实际正在运行。 around line 197
如果您的连接正确,您的浏览器将响应您遇到的任何其他错误。希望他的帮助!旅途安全!
【讨论】:
以上是关于Apollo 订阅 PubSub 未触发侦听器的主要内容,如果未能解决你的问题,请参考以下文章