如何部署可扩展的 Parse LiveQuery Server?
How to deploy a scalable Parse LiveQuery Server?
最近,我们开始为我们的应用程序开发聊天功能,因为我们已经在使用 Parse SDK/Server,我们决定使用 Parse LiveQuery...
问题是,没有关于如何在单独的服务器上部署 Parse LiveQuery 服务器的足够的文档!我们看到了这个:http://docs.parseplatform.org/parse-server/guide/#scalability 但我们并没有真正想出如何继续...
所以我们有几个问题:
为了创建可扩展的 Parse LiveQuery Server,我们需要做什么? (最好在 Digital Ocean / Heroku 上)
它如何与存储我们 MongoDB 的原始 Parse Server 通信?
在你的 Parse Server B 中给出你的数据库 A 的 databaseUri: var api = new ParseServer({ databaseURI: 'mongodb://myMogoURL',
这是我们在 Heroku 上设置可扩展的 Parse LiveQuery 服务器的方法
因为 Heroku 上只有一个 'web' 进程,所以 它将分为两个 Heroku 应用程序:Main 和 LiveQuery。
A:主应用程序 - 除了 LiveQuery 服务器之外的所有功能
步骤 A1. 在 Heroku 上设置一个 Parse 应用程序
步骤A2.添加一个Heroku Redis(免费套餐足够测试)
步骤A3.配置Parse应用,为liveQuery添加redisURL
var api = new ParseServer({
...
liveQuery: {
classNames: [...],
redisURL: REDIS_URL_ON_MAIN
},
...
});
B: LiveQuery 应用程序 - 主应用程序的可扩展 LiveQuery 服务器
步骤 B1。 在 Heroku 上安装另一个 Parse 应用程序
步骤 B2. 配置 Parse 应用,不要设置 liveQuery
var api = new ParseServer({
appId: APP_ID_ON_LIVEQUERY,
masterKey: MASTER_KEY_ON_LIVEQUERY,
serverURL: SERVER_URL_ON_LIVEQUERY,
databaseURI: // (Optional) Only warning even if leave it default
});
步骤 B3. 创建 LiveQuery 服务器
var app = express();
app.use(PARSE_MOUNT_ON_LIVEQUERY, api);
var httpServer = require('http').createServer(app);
httpServer.listen(PORT_ON_LIVEQUERY, function() {
/* Create HTTP server successfully */
});
ParseServer.createLiveQueryServer(httpServer, {
redisURL: REDIS_URL_ON_MAIN // Redis URL from Mani app
});
C: 客户端 - 例如Swift
步骤 C1. 使用
初始化客户端实例
Client(server:applicationId:clientKey:)
let client = Client(server: SERVER_URL_ON_LIVEQUERY,
applicationId: APP_ID_ON_LIVEQUERY,
clientKey: nil)
步骤 C2。 订阅 LiveQuery
let subscription = client.subscribe(query)
subscription.handle(Event.created, { query, object in
/* Handle CREATE event */
})
最后,我们可以在Heroku 上的LiveQuery 应用程序中扩展web 进程了^_^
欢迎对我的任何评论 glist
最近,我们开始为我们的应用程序开发聊天功能,因为我们已经在使用 Parse SDK/Server,我们决定使用 Parse LiveQuery...
问题是,没有关于如何在单独的服务器上部署 Parse LiveQuery 服务器的足够的文档!我们看到了这个:http://docs.parseplatform.org/parse-server/guide/#scalability 但我们并没有真正想出如何继续...
所以我们有几个问题:
为了创建可扩展的 Parse LiveQuery Server,我们需要做什么? (最好在 Digital Ocean / Heroku 上)
它如何与存储我们 MongoDB 的原始 Parse Server 通信?
在你的 Parse Server B 中给出你的数据库 A 的 databaseUri: var api = new ParseServer({ databaseURI: 'mongodb://myMogoURL',
这是我们在 Heroku 上设置可扩展的 Parse LiveQuery 服务器的方法 因为 Heroku 上只有一个 'web' 进程,所以 它将分为两个 Heroku 应用程序:Main 和 LiveQuery。
A:主应用程序 - 除了 LiveQuery 服务器之外的所有功能
步骤 A1. 在 Heroku 上设置一个 Parse 应用程序
步骤A2.添加一个Heroku Redis(免费套餐足够测试)
步骤A3.配置Parse应用,为liveQuery添加redisURL
var api = new ParseServer({
...
liveQuery: {
classNames: [...],
redisURL: REDIS_URL_ON_MAIN
},
...
});
B: LiveQuery 应用程序 - 主应用程序的可扩展 LiveQuery 服务器
步骤 B1。 在 Heroku 上安装另一个 Parse 应用程序
步骤 B2. 配置 Parse 应用,不要设置 liveQuery
var api = new ParseServer({
appId: APP_ID_ON_LIVEQUERY,
masterKey: MASTER_KEY_ON_LIVEQUERY,
serverURL: SERVER_URL_ON_LIVEQUERY,
databaseURI: // (Optional) Only warning even if leave it default
});
步骤 B3. 创建 LiveQuery 服务器
var app = express();
app.use(PARSE_MOUNT_ON_LIVEQUERY, api);
var httpServer = require('http').createServer(app);
httpServer.listen(PORT_ON_LIVEQUERY, function() {
/* Create HTTP server successfully */
});
ParseServer.createLiveQueryServer(httpServer, {
redisURL: REDIS_URL_ON_MAIN // Redis URL from Mani app
});
C: 客户端 - 例如Swift
步骤 C1. 使用
初始化客户端实例Client(server:applicationId:clientKey:)
let client = Client(server: SERVER_URL_ON_LIVEQUERY,
applicationId: APP_ID_ON_LIVEQUERY,
clientKey: nil)
步骤 C2。 订阅 LiveQuery
let subscription = client.subscribe(query)
subscription.handle(Event.created, { query, object in
/* Handle CREATE event */
})
最后,我们可以在Heroku 上的LiveQuery 应用程序中扩展web 进程了^_^
欢迎对我的任何评论 glist