【问题标题】:Parse-Server LiveQuery Not Sending Events解析服务器 LiveQuery 不发送事件
【发布时间】:2017-04-18 15:14:54
【问题描述】:

我目前正在尝试使用 iOS 和 Parse-Server 进行实时查询。以下是我的 Parse-Server 设置:

...

let api = new ParseServer({
    databaseURI: databaseUri || constants.DATABASE_URI,
    cloud: process.env.CLOUD_CODE_MAIN || constants.CLOUD_CODE_MAIN,
    appId: process.env.APP_ID || constants.APP_ID,
    masterKey: process.env.MASTER_KEY || constants.MASTER_KEY,
    serverURL: process.env.SERVER_URL || constants.LOCAL_SERVER_URL,
    fileKey: process.env.FILE_KEY || constants.FILE_KEY,
    appName: process.env.APP_NAME || constants.APP_NAME,
    publicServerURL: process.env.SERVER_URL || constants.LOCAL_SERVER_URL,
    liveQuery: {
        classNames: [Parse.User]
    }
});

...

let port = process.env.PORT || 1337;

let httpServer = require('http').createServer(app);
httpServer.listen(port, function () {
    console.log('parse_server running on port ' + port + '.');
});

ParseServer.createLiveQueryServer(httpServer, {logLevel: 'VERBOSE'});

...

这是我在 iOS 应用中的代码:

let liveQueryClient = ParseLiveQuery.Client(server: "ws://serverurl/", applicationId: "appID", clientKey: "clientKey")

let query = PFUser.query()?.whereKey("objectId", equalTo: "ABC123") as! PFQuery<PFUser>

let subscription = self.liveQueryClient.subscribe(query).handle(Event.updated) { _, user in
    debugprint("\(user)")
}

在本地调试,我可以看到用户正在使用套接字连接,因为服务器记录:

info: Create new client: 0

当我断开连接时,服务器会记录:

info: Client disconnect: 0

我的问题是,每当我在 Parse Dashboard 中修改 User 对象时,服务器端没有任何日志记录,并且客户端没有收到任何事件。

还有其他方法可以设置吗?

非常感谢您的帮助。


更新(2017 年 4 月 27 日):

我还没有完成这项工作。我不完全确定问题是什么。我遵循了许多教程都无济于事。

有谁知道 User 类是否不能用于实时查询?

【问题讨论】:

  • 我也在为您的问题而苦苦挣扎...尝试了一切,等待解决方案。
  • 嗨,看看这个答案stackoverflow.com/a/44721816/5928180,它可能会帮助你解决你的问题。
  • 您好,Parse 中的“User”类实际上在数据库中表示为“_User”,因此无论您必须指定要接收的 ParseObject 的类,请确保包含下划线.

标签: ios parse-platform parse-server livequery parse-ios-sdk


【解决方案1】:

我不确定 IOS 代码但是这部分例如:

liveQuery: {
    classNames: ["YourColumnNameInDatabase","AnotherColumnName"]
}

确保您订阅了正确的 ClassName(ColumnName in Db) 希望这会有所帮助...

【讨论】:

  • 我检查了它,一切都很好。甚至尝试将其从"Parse.User" 更改为"User",但这也不起作用。不过感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-24
  • 2015-06-16
相关资源
最近更新 更多