2017-05-14 4 views
0

J'ai une application iOS et Android, déployée dans un serveur Parse. Maintenant, je veux utiliser le LiveQuery SDK, à partir d'une fonction de cloud!Analyser LiveQuery dans le Cloud Code

Voici mon code nuage:

Parse.Cloud.define("subscribeQueryFunction", function(request, response) { 
    var query = new Parse.Query("Message"); 
    var subscription = query.subscribe(); 

    subscription.on("create", (object) => { 
     response.success(object); 
    }); 
}); 

Et mon code Swift:

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    PFCloud.callFunction(inBackground: "subscribeQueryFunction", withParameters: nil) { (res: Any?, e: Error?) in 
     print(res) 
     print(e) 
    } 
} 

La chose est que le client ne reçoit pas une réponse! Bien que, j'ai vérifié les journaux et l'abonnement semble être établie:

2017-05-14T16:49:12.442Z - Ran cloud function subscribeQueryFunction for user D7FP3cts5p with: Input: {} Result: {"text":"hey","createdAt":"2017-05-14T16:49:12.412Z","updatedAt":"2017-05-14T16:49:12.412Z","objectId":"DXCiumOTal","__type":"Object","className":"Message"} 2017-05-14T16:49:11.101Z - Ran cloud function subscribeQueryFunction for user D7FP3cts5p with: Input: {} Result: {"text":"hey","createdAt":"2017-05-14T16:49:11.044Z","updatedAt":"2017-05-14T16:49:11.044Z","objectId":"qkXS6csCKJ","__type":"Object","className":"Message"} 2017-05-14T16:49:09.099Z - Ran cloud function subscribeQueryFunction for user D7FP3cts5p with: Input: {} Result: {"text":"hey","createdAt":"2017-05-14T16:49:09.080Z","updatedAt":"2017-05-14T16:49:09.080Z","objectId":"ydnrDHO9AP","__type":"Object","className":"Message"} 2017-05-14T16:47:45.183Z - Create new client: 0

Toutes les idées?

+0

Pourquoi voulez-vous faire? –

+0

@JulienKode parce que je veux qu'un code soit écrit une fois, pour iOS et Android et que les développeurs ne le codent pas séparément –

+0

Oh je comprends, mais je ne pense pas que Live Query soit fait pour être utilisé côté serveur. Cela fonctionne avec les sockets Web –

Répondre

2

Live Query n'est pas conçu pour être utilisé côté serveur. Live Query utilise des sockets Web pour interagir en temps réel avec votre client. Mais quand vous est app près la prise est proche aussi ... Alors voulez-vous besoin est les notifications push

Si vous souhaitez effectuer une application de messagerie en temps réel avec analyser votre besoin:

  • Mettre en œuvre Parse en direct requête pour obtenir de nouveaux messages avec les prises Web lorsque vous app est ouvert
  • Utiliser les notifications push, donc quand vous est app près, vous obtenez les nouveaux messages