首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >订阅失败错误消息(类型: Starscream.ErrorType.upgradeError消息:\“无效的HTTP升级\”,代码: 400)?

订阅失败错误消息(类型: Starscream.ErrorType.upgradeError消息:\“无效的HTTP升级\”,代码: 400)?
EN

Stack Overflow用户
提问于 2020-06-07 14:57:52
回答 1查看 512关注 0票数 3

我需要在我的iOS应用程序中集成subscriptionsubscriptiongraphiql中的localhost上运行良好。我已经在Heroku上部署了我的后端。我使用的是apollo-server而不是hasura。我的subscriptions对Heroku提供的url不起作用,但在localhost上运行得很好。QueriesmutationslocalhostHeroku url上都工作得很好。因此,我尝试从我的iOS客户端访问我的subscription。我保留了基本url作为我的本地主机。查询和突变部分适用于我的iOS客户端,但我的subscription部分不起作用。

我已经通过添加以下内容来配置我的Apollo客户端以进行订阅

代码语言:javascript
复制
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,如下所示

代码语言:javascript
复制
let webSocketTransport = WebSocketTransport(request: URLRequest(url: URL(string: "ws://localhost:5000")!))

订阅代码如下

代码语言:javascript
复制
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客户端得到了如下错误

代码语言:javascript
复制
" Subscription Failure Error WSError(type: Starscream.ErrorType.upgradeError, message: \"Invalid HTTP upgrade\", code: 400)"

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-18 21:19:03

所以我的ios Code没有问题。问题出在我正在使用的免费Heroku层。我试着用Hasura's Subscription https://hasura.io/learn/graphql/ios/subscriptions/1-subscription/替换我的subscription,它工作正常。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62241942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档