【问题标题】:Apollo GraphQL - Handling onConnect and OnDisconnect eventsApollo GraphQL - 处理 onConnect 和 OnDisconnect 事件
【发布时间】:2021-01-21 11:04:30
【问题描述】:

我正在使用Apollo GraphQL 开发一个实时聊天应用程序,我想让客户了解其他客户的最新状态。

意味着我需要对订阅对象(在 app.js 中定义)中的 onConnect 和 OnDisconnect 事件进行处理,并在用户连接或断开连接时向客户端发送订阅事件。

我找不到有关如何执行此操作的解释,我将不胜感激。

【问题讨论】:

    标签: graphql apollo apollo-server graphql-js graphql-subscriptions


    【解决方案1】:

    你必须像这样将 onDisconnect 属性与 context.initPromise 一起使用:

        onDisconnect: async (webSocket, context) => {
          console.log('what is the context?: ', context); 
    
          try {
            const initialContext = await context.initPromise;
            if (
              initialContext &&
              typeof initialContext === 'object' &&
              Reflect.has(initialContext, 'user')
            ) {
              console.log('initialContext: ', initialContext);
            }
          } catch (err) {
            console.log('error', err); // TypeError: 
          }
        }
      },
    

    linklink2 供参考。

    警告:这目前正在我的本地构建中工作,但不适用于我的 heroku 生产构建

    【讨论】:

      猜你喜欢
      • 2020-11-14
      • 1970-01-01
      • 2017-06-23
      • 2019-07-31
      • 2018-08-01
      • 2018-10-21
      • 2015-01-09
      • 2020-11-27
      • 2021-10-12
      相关资源
      最近更新 更多