微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法连接到 WebSocket 端点 [apollo-server-express with GooglePubSub]

如何解决无法连接到 WebSocket 端点 [apollo-server-express with GooglePubSub]

我正在运行 Meteor/React/Apollo/Graphql 堆栈,我正在尝试使订阅正常工作,我已经浏览了 Apollo 文档并试图让它与这个库一起工作,但我得到了一个我的Graphiql控制台中的错误如下:

{
  "error": "Could not connect to websocket endpoint ws://XXX.XXX.XX.XX:3000/subscriptions. Please check if the endpoint url is correct."
}

我的服务器代码如下:

import { ApolloServer,gql } from "apollo-server-express"
import { makeExecutableSchema } from "graphql-tools"
import { WebApp } from "meteor/webapp"
import { getUser } from "meteor/apollo"
import merge from "lodash/merge"

import SchemaA from "../../api/a/SchemaA.graphql"
import ResolverA from "../../api/a/resolvers"
import SchemaB from "../../api/b/SchemaB.graphql"
import ResolverB from "../../api/b/resolvers"
import SchemaC from "../../api/c/SchemaC.graphql"
import ResolverC from "../../api/c/resolvers"

import { GooglePubSub } from "@axelspringer/graphql-google-pubsub"

const pubsub = new GooglePubSub()

const typeDefs = [SchemaA,SchemaB,SchemaC]
const resolvers = merge(ResolverA,ResolverB,ResolverC)

const schema = makeExecutableSchema({ typeDefs,resolvers })

const server = new ApolloServer({
    schema,context: async ({ req }) => ({
        user: await getUser(req.headers.authorization),pubsub
    }),subscriptions : {
        path: '/subscriptions'
    }
})

server.applyMiddleware({
    app: WebApp.connectHandlers,path: "/graphql",})

WebApp.connectHandlers.use("/graphql",(req,res) => {
    if (req.method === "GET") {
        res.end()
    }
})

有人对如何解决这个问题有任何建议吗?显然有一些配置/设置我做得不正确。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。