订阅失败错误 WSError(类型:Starscream.ErrorType.upgradeError 消息:\"Invalid HTTP upgrade\",代码:400)?

Subscription Failure Error WSError(type: Starscream.ErrorType.upgradeError message: \"Invalid HTTP upgrade\", code: 400)?

我需要在我的 iOS 应用程序中集成 subscriptionsubscriptiongraphiql 中的 localhost 上运行良好。我已经在 Heroku 上部署了我的后端。我使用的是 apollo-server 而不是 hasura。我的 subscriptions 不适用于 Heroku 给出的 url,但它在 localhost 上运行良好。 Queriesmutations 适用于 localhostHeroku url。所以我正在尝试从我的 iOS 客户端访问我的 subscription。我将基地 url 保留为我的本地主机。查询和突变部分适用于我的 iOS 客户端,但我的 subscription 部分不起作用。

我已经通过添加这个

配置了我的 Apollo 客户端订阅
let httpNetworkTransport = HTTPNetworkTransport(url: URL(string: "http://localhost:5000")!)
        httpNetworkTransport.delegate = self

        let webSocketTransport = WebSocketTransport(request: URLRequest(url: URL(string: "http://localhost:5000")!))


         let splitNetworkTransport = SplitNetworkTransport(
          httpNetworkTransport: httpNetworkTransport,
          webSocketNetworkTransport: webSocketTransport
        )

        return ApolloClient(networkTransport: splitNetworkTransport)

我也尝试用 ws 替换 http 如下

let webSocketTransport = WebSocketTransport(request: URLRequest(url: URL(string: "ws://localhost:5000")!))

订阅码如下

subscription = Network.shared.apollo.subscribe(subscription: GetHealthConsultationSubscriptionSubscription()){
            [weak self] result in
            guard let self = self else {
                return
            }
            switch result {
            case .success(let result):
                debugPrint(result.data?.healthConsultation.chiefComplaint)

            case .failure(let error):
                debugPrint(" Subscription Failure Error \(error)")
            }
        }

但是我的 iOS 客户端出现如下错误

" Subscription Failure Error WSError(type: Starscream.ErrorType.upgradeError, message: \"Invalid HTTP upgrade\", code: 400)"

此外,当我使用 Graphiql 进行订阅并将 localhost 替换为 Heroku url 进行订阅时,我收到以下错误。

所以我的 ios Code 没有问题。问题出在我使用的 Heroku 免费层。我尝试用 Hasura's Subscription https://hasura.io/learn/graphql/ios/subscriptions/1-subscription/ 替换我的 subscription 并且它有效。