阿波罗客户服务有限公司;iOS上的Hasura认证

阿波罗客户服务有限公司;iOS上的Hasura认证,ios,swift,graphql,apollo,hasura,Ios,Swift,Graphql,Apollo,Hasura,我正在尝试在iOS上使用apollo客户端实现订阅,我已经研究了线程,但它对我不起作用。我仍然收到此身份验证钩子未授权此请求,代码:1000或操作无法完成红蜘蛛。WSError error 1 我的代码是: let apollo: ApolloClient = { let authPayload = ["X-Hasura-Access-Key": "<my_key>", "Content-Type": "application/j

我正在尝试在iOS上使用apollo客户端实现订阅,我已经研究了线程,但它对我不起作用。我仍然收到此
身份验证钩子未授权此请求,代码:1000
操作无法完成红蜘蛛。WSError error 1

我的代码是:

let apollo: ApolloClient = {
    let authPayload = ["X-Hasura-Access-Key": "<my_key>",
                       "Content-Type": "application/json"]

    let configuration = URLSessionConfiguration.default
    configuration.httpAdditionalHeaders = authPayload

    let map: GraphQLMap = authPayload

    let url = URL(string: "https://url")!
    let wsUrl = URL(string: "wss://url")!

    let httpNetworkTransport = HTTPNetworkTransport(url: url, configuration: configuration)
    let wsNetworkTransport = WebSocketTransport(request: URLRequest(url: wsUrl), connectingPayload: map)

    return ApolloClient(networkTransport: SplitNetworkTransport(httpNetworkTransport: httpNetworkTransport,
                                                            webSocketNetworkTransport: wsNetworkTransport))
}()

我还缺少其他设置吗?这个东西确实缺少文档。

这个代码片段应该可以工作:

let authPayloads = [
  "X-Hasura-Access-Key": "<key>"
]
let map: GraphQLMap = ["headers": authPayloads]
let websocket = WebSocketTransport(request: urlRequest, connectingPayload: map)
让authPayloads=[
“X-Hasura-Access-Key”:”
]
let-map:GraphQLMap=[“headers”:authPayloads]
让websocket=WebSocketTransport(请求:urlRequest,连接负载:map)

有效负载映射的结构需要稍微不同。

检查您的访问密钥,此错误很明显,因为您没有Authentication@a.masri我仔细检查了它,它对查询进行身份验证,但不验证SubscriptionBase apollo客户端文档,身份验证类型Bear not access-key,检查此文档WebSocketTransport似乎对标题更改没有响应,这很奇怪,我尝试更改标题,但没有成功-相同的错误是的,我只是联系了Hasura支持,他们真的帮了忙。100%适合我。哦,你是哈苏拉人:)再次感谢!哈利路亚,赞美t,h,e,L,o,r,d,iamnat!!我一直在寻找答案。
let authPayloads = [
  "X-Hasura-Access-Key": "<key>"
]
let map: GraphQLMap = ["headers": authPayloads]
let websocket = WebSocketTransport(request: urlRequest, connectingPayload: map)