graphql - Apollo GraphQL - 处理 onConnect 和 OnDisconnect 事件

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

我正在使用 Apollo GraphQL 开发实时聊天应用程序,我想让客户了解其他客户的状态。
意味着我需要对订阅对象(在 app.js 中定义)中的 onConnect 和 OnDisconnect 事件做一些事情,并在用户连接或断开连接时向客户端发送订阅事件。
我找不到有关如何执行此操作的解释,我将不胜感激。

最佳答案

你必须像这样使用带有 context.initPromise 的 onDisconnect 属性:

    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 生产构建上

关于graphql - Apollo GraphQL - 处理 onConnect 和 OnDisconnect 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64227973/

相关文章:

node.js - Apollo-server-express 返回 "cannot Get/"而不是 Graphql playground

javascript - 模拟 GraphQL,MockList 仅生成数组中的两项

java - 尝试在 Java 中使用 HttpClient 发送 HTTP Post GraphQL 查询时出现 HTTP 400

docker - apollo网关(federation)无法连接kubernetes环境中的服务

javascript - Apollo Express GraphQL 中出现错误 : Error: Schema must contain uniquely named types but contains multiple types named "DateTime"

javascript - 后端扩展时如何有效地向graphql订阅者发布

python - 无法使用请求抓取 graphql 页面

node.js - 如何在没有 _id 引用的情况下获取 GraphqQL 列表中模型的填充值?

javascript - Apollo 不可分配给 'VueClass<Vue> 类型的参数

graphql - 如何在 apollo-client 中使用枚举?