在很多应用场景下,我们都需要实时数据更新。比如聊天系统,天气预报,股票价格,商城产品库存等。
我们强大的Parse Server同样提供了基于WebSocket的livequery服务。今天我们就手把手,跑一次Parse Server的livequery吧!
接上一篇教程一步到位配置parse server和parse dashboard:
http://www.parseserver.cn/article-51-1.html
首先是我们通过Parse dashboard创建一个CLASS: post。
包括title字段,content字段。
服务端创建Parse Server
var ParseServer = require(
'parse-server').ParseServer;
var api =
new ParseServer({
"appId":
"asdhwu648vx",
"masterKey":
"lkasni654zdw",
"appName":
"blog",
"databaseURI":$config.databaseURI,
"serverURL":$config.serverURL,
"liveQuery": {
classNames: [
'post']
//把要监控的对象加入到数组
}
});
module.exports=api;
再挂载Parse Server服务以及创建LiveQuery服务
var express = require(
'express');
$config=require(
'./config');
var API =require(
'./server/Parse_Server');
var ParseDashboard = require(
'./server/Parse_Dashboard');
var ParseServer = require(
'parse-server').ParseServer;
//我们需要重新实例化一个parse server来创建livequery服务
var app = express();
app.get(
'/',
function(req,res){
res.sendFile(__dirname+
'/page/post.html');
});
// 把 Parse Server 挂载在 /parse
app.use(
'/parse', API);
// 把 Parse Dashboard 挂载在 /dashboard
app.use(
'/dashboard', ParseDashboard);
var httpServer = require(
'http').createServer(app);
httpServer.listen($config.serverPort,
function(){
console.log(
'parse-server parse-dashboard are running on port 4040.');
});
var parseLiveQueryServer = ParseServer.createLiveQueryServer(httpServer);
然后我们再创建客户端接收Livequery服务传给我们的消息
<html>
<head>
<script
src=
"https://npmcdn.com/parse/dist/parse.min.js"
>
<
/script>
</head>
<body>
<script>
var iParse = Parse;
iParse.initialize(
"asdhwu648vx");
iParse.serverURL =
'http://localhost:4040/parse';
let query =
new iParse.Query(
'post');
let subscription = query.subscribe();
subscription.on(
'create', (object)
=> {
console.log(
'object created');
console.log(object);
});
subscription.on(
'update', (object)
=> {
console.log(
'object updated');
console.log(object);
});
<
/script>
</body>
</html>
Done!
效果图如下,
parse dashboard后台创建修改post: