1

Issue Description

We have hosted Parse server on Azure App Services. We are able to connect to live Query and able to Subscribe to it. We are getting below messages.

2019-01-01 19:03:26.917094+0530 LiveQueryTest[59625:972922] ParseLiveQuery: Sending message:

{"clientKey":"xxxxxx","op":"connect","sessionToken":"","applicationId":"xxxxxx"}
2019-01-01 19:03:27.285251+0530 LiveQueryTest[59625:972922] ParseLiveQuery: Received message: {"op":"connected","clientId":5}
2019-01-01 19:03:27.388337+0530 LiveQueryTest[59625:972922] ParseLiveQuery: Sending message: {"query":{"className":"PostQuestionMessage","where":{"type":2}},"requestId":1,"op":"subscribe"}
2019-01-01 19:03:27.600455+0530 LiveQueryTest[59625:972813] ParseLiveQuery: Received message: {"op":"subscribed","clientId":5,"requestId":1}

And we are subscribed to Update Event but when we updated any records we are not getting event Back.

On the server:

We tried to listen to Specific port "1337" as below: Every time we do that our Parse Dashboard and API stops working. So Is it necessary to listen to specific port i.e "1337" or var port = process.env.PORT || 1337; will also work for Live Query.

var httpServer = require('http').createServer(app);
var port = 1337;
httpServer.listen(port, function() {
console.log('Parse Server running at ${port}');
console.log("The value of port is " + port);
});
ParseServer.createLiveQueryServer(httpServer);

Expected Results

We should get the event update as per our subscription.

Actual Outcome

Not receiving event updates as per the Query Subscribed,

Environment Setup

Server

parse-server version (Be specific! Don't say 'latest'.) : [2.3.8]

Operating System: [Linux]

[Remote Server - Azure]

Database

MongoDB version: [3.4]

[Remote Server - Azure]

Logs/Trace

Server:

[32minfo�[39m: Parse LiveQuery Server starts running

�[32minfo�[39m: Create new client: 1

iOS client Code:

import UIKit
import Parse
import ParseLiveQuery

class LiveQueryManager {
    static let shared = LiveQueryManager()
    var liveQueryClient = ParseLiveQuery.Client()
    var subscription: Subscription<PostQuestionMessage>?
    var messagesQuery: PFQuery<PostQuestionMessage> {
        return (PostQuestionMessage.query()?
            .whereKey("type", equalTo: 2)) as! PFQuery<PostQuestionMessage>
    }
    init(){
        liveQueryClient.shouldPrintWebSocketLog = true
        liveQueryClient.shouldPrintWebSocketTrace = true
    }
    fileprivate func printMessage(_ message: PostQuestionMessage) {
        let createdAt = message.createdAt ?? Date()
        print("\(createdAt) : \(message.message ?? "")")
    }

    func subscribeToUpdates() {

        //https://stackoverflow.com/questions/44273455/parse-cloud-livequeries-ios-client-doesnt-work
        self.subscription = self.liveQueryClient.subscribe(messagesQuery)
        self.subscription = self.subscription?.handleEvent({ (_, event) in
            switch event {
            case .created(let object):
                print("Event Created")
                self.printMessage(object)
            // do stuff
            case .updated(let object):
                print("Event Updated")
                self.printMessage(object)

            default:
                break // do other stuff or do nothing
            }
        })

    }
    func disconnectFromSubscription() {
        if let objSubcription = self.subscription {
            self.liveQueryClient.unsubscribe(messagesQuery, handler: objSubcription)
        }

    }
    func printSubscription () {
        if let objSubscription = self.subscription {
            print ("Subscription:\(objSubscription)")
            print ("Client:\(self.liveQueryClient)")
            print ("Client userDisconnected:\(self.liveQueryClient.userDisconnected)")
        }
    }


}
Nishith Sheth
  • 991
  • 7
  • 13

0 Answers0