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 未触发侦听器的主要内容,如果未能解决你的问题,请参考以下文章

鼠标键挂钩 - 键侦听器未触发

Firebase 云发布订阅订阅停止侦听消息

具有相同订阅的服务总线多个侦听器实例未接收消息

本地存储中的更改未触发事件侦听器

Spring boot OAuth成功登录侦听器未触发

事件侦听器 MSPointer 未触发