Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

77
Visualizações
Integre las suscripciones de Apollo en iOS con Action Cable que se usa en el backend para websockets

Estoy tratando de hacer que las suscripciones de Apollo en iOS funcionen con un backend que usa Action Cable para implementar websockets. Aprendí que la aplicación iOS necesita enviar command , channel e channel id de canales al backend para que las suscripciones funcionen ( ver aquí ). He intentado usar la función write func write(_ str: String, force forced: Bool = false, id: Int? = nil) en WebSocketTransport.swift en el objeto WebSocketTransport al inicializar la instancia de Apollo. A continuación puedes ver cómo lo estoy haciendo.

 let userDefault = UserDefaults.standard var authPayloads = Dictionary<String, String> () var authToken = "" if let token = userDefault.object(forKey: "token") { authToken = "\(token)" authPayloads.updateValue(authToken, forKey: "authorization") } let configuration = URLSessionConfiguration.default configuration.httpAdditionalHeaders = authPayloads let map: GraphQLMap = authPayloads let wsEndpointURL = URL(string: "ws://localhost:8080/subscriptions/\(authToken)")! let endpointURL = URL(string: "http://localhost:8080/api")! websocket = WebSocketTransport(request: URLRequest(url: wsEndpointURL), connectingPayload: map) var channelId = Int(arc4random_uniform(100000)) websocket?.write(stringify(json: ["command":"subscribe", "identifier": stringify(json: ["channel":"channelName", "channelId": channelId])])) let splitNetworkTransport = SplitNetworkTransport( httpNetworkTransport: HTTPNetworkTransport( url: endpointURL, configuration: configuration ), webSocketNetworkTransport: websocket! ) return ApolloClient(networkTransport: splitNetworkTransport) }()

Sin embargo, el backend no ve lo que escribo en el objeto Transporte de WebSocket en sus registros y no puedo suscribirme a ese canal específico. ¿Alguna idea de cómo puedo usar las suscripciones de Apollo en iOS si el backend usa Action Cable y hacer que los dos funcionen juntos?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

La única solución por ahora es usar Swift-ActionCableClient para recibir transmisiones y usar las mutaciones/consultas de ApolloClient .

¡Desgraciadamente! Apollo iOS no sabe cómo comunicarse con los canales de ActionCable, este problema se informa en Apollo-iOS Github Problema n.º 634 y Tu problema Github Problema n.º 454

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda