gpt4 book ai didi

graphql - 如何使用apollo ios客户端实现graphql订阅

转载 作者:行者123 更新时间:2023-12-04 14:22:40 51 4
gpt4 key购买 nike

我正在尝试使用 apollo ios 客户端实现 graphql 订阅。但由于缺乏文档示例而无法弄清楚。
阿波罗文档中给出的示例是:

let apollo: ApolloClient = {
let configuration = URLSessionConfiguration.default
// Add additional headers as needed
configuration.httpAdditionalHeaders = ["Authorization": "Bearer <token>"] // Replace `<token>`

let url = URL(string: "http://localhost:8080/graphql")!

return ApolloClient(networkTransport: HTTPNetworkTransport(url: url, configuration: configuration))
}()

APOLLO IOS GUIDE: Creating a client

最佳答案

按照以下步骤在 apollo ios graphql 客户端中实现订阅。

  • 使用 cocoa bean :
  • pod 'Apollo'
  • pod 'Apollo/WebSocket'
  • pod install
  • 创建客户端以支持订阅和身份验证。在 AppDelegate.swift 中添加以下代码:
  • Websocket - 我们必须使用 WebSocketTransportURLRequest
  • 身份验证 - 我们必须在连接参数中传递身份验证参数 connectingPayload到服务器。对于 http,我们将其传递到问题片段中提到的 header 中。
  • SplitNetworkTransport - 将两者结合起来 httpwebsocket创建客户端。我们必须使用 httpNetworkTransportwebSocketNetworkTransport

  • lazy var apollo: ApolloClient = {
    let authPayloads = [
    "Authorization": "Bearer "
    ]
    let configuration = URLSessionConfiguration.default
    configuration.httpAdditionalHeaders = authPayloads



    let map: GraphQLMap = authPayloads 
    let wsEndpointURL = URL(string: "ws://localhost:8080/subscriptions")!
    let endpointURL = URL(string: "http://localhost:8080/api")!
    let websocket = WebSocketTransport(request: URLRequest(url: wsEndpointURL), connectingPayload: map)
    let splitNetworkTransport = SplitNetworkTransport(
    httpNetworkTransport: HTTPNetworkTransport(
    url: endpointURL,
    configuration: configuration
    ),
    webSocketNetworkTransport: websocket
    )
    return ApolloClient(networkTransport: splitNetworkTransport)

    }()

    关于graphql - 如何使用apollo ios客户端实现graphql订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51720378/

    51 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com