我目前正在尝试使用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对象时,nothings就会在服务器端登录,而客户端不会收到任何事件。
还有另一种设置方法吗?
感谢先进的帮助。
更新(04/27/17):
我还没有完成这项工作。我不完全确定问题是什么。我已经按照许多教程无济于事。
是否有人知道User类是否无法在实时查询中使用?
答案 0 :(得分:0)
我不确定IOS代码但是这部分例如:
liveQuery: {
classNames: ["YourColumnNameInDatabase","AnotherColumnName"]
}
确保检查您是否订阅了正确的ClassName(Db中的ColumnName) 希望这有点帮助...