【发布时间】:2018-06-16 01:08:16
【问题描述】:
我尝试设置解析实时查询,但由于某种原因它没有返回任何结果。
我可以从中提取数据,所以我知道服务器和数据库运行良好。
当我在 localhost 上运行时,“打开”连接有效,但即便如此,订阅事件也不会被调用。
客户
var Parse = require('parse/node');
Parse.initialize("key", "", "pass");
Parse.serverURL = parseServer;
Parse.liveQueryServerURL = 'ws://localhost:1337/';
let query = new Parse.Query('groups');
query.equalTo('name', 'name');
let subscription = query.subscribe();
subscription.on('update', (people) => {
console.log("YEAY");
// console.log(people.get('score')); // This should output 100
});
subscription.on('open', () => {
console.log('subscription opened');
});
服务器
var app = new ParseServer({
startLiveQueryServer: true,
liveQuery: {
classNames: ["groups", "comments"] // List of classes to support for query subscriptions
},
..}
var port = process.env.PORT || 1337;
var httpServer = require('http').createServer(app);
httpServer.listen(port, function() {
console.log('parse-server-example running on port ' + port + '.');
});
// This will enable the Live Query real-time server
var parseLiveQueryServer = ParseServer.createLiveQueryServer(httpServer);
【问题讨论】:
-
奇数选择表达式:query.equalTo('name', 'name');您可能会尝试使用第二个客户端提交有效查询(正常异步响应)以检查正常客户端是否获得结果集 sz > 0
-
哈哈是的。知道为什么这不起作用吗?我在弹性豆茎上跑步。我什至在我的 .ebextension nginx.com/blog/websocket-nginx 中添加了 nginx 文件
-
@RobertRowntree 是的,我可以确认正常查询工作。只是没有调用订阅:/
-
如果
let导致订阅范围问题怎么办。哪里的事件只在Client.js中被调用或者这无关紧要? -
@Alex 拿出来了,还是不行:/