Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

75
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda