ios - 订阅失败错误 WSError(type: Starscream.ErrorType.upgradeError message: \"Invalid HTTP upgrade\", code: 400)?
问题描述
我需要集成subscription
到我的 iOS 应用程序中。subscription
在. _ localhost
_ graphiql
我已经将我的后端部署在Heroku
. 我正在使用apollo-server
而不是hasura
. 我subscriptions
的不适用于 Heroku 提供的 url,但它在localhost
. Queries
和url都mutations
可以正常工作。所以我试图从我的 iOS 客户端访问我的。我将基本网址保留为我的本地主机。查询和突变部分适用于我的 iOS 客户端,但我的部分不起作用。localhost
Heroku
subscription
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)
我也尝试替换http
为ws
如下
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
问题在于我正在使用的免费层。我尝试用我subscription
的替换Hasura's Subscription
https://hasura.io/learn/graphql/ios/subscriptions/1-subscription/
它并且它有效。
推荐阅读
- python - Index.js 文件错误警告:要加载 ES 模块,请在 package.json 文件中设置“type:”module”
- python - 用python从计算机中收集每个txt文件并打印出来
- hyperledger-fabric - 错误:获取链码字节时出错:无法计算依赖项:不完整的包:github.com/hyperledger/fabric-chaincode-go/shim/internal
- java - java中2组的最接近总和
- mongodb - 如何对由容器组成的mongo集群应用身份验证?
- angular - 我可以在某个区域打开 Ionic 3 条码扫描仪吗?就像在一个 div
- php - 使用 MySQL 设置 Web 应用程序
- swift - 将多个带有动画的 CATextLayer 添加到 CALayer 无法正常工作
- c# - HTML 渲染器 - 从 HTML 生成 PDF,但无法从 C# 流中添加背景图像
- react-native - ReferenceError:找不到变量:createStackNavigator