【发布时间】:2017-02-08 20:38:39
【问题描述】:
我需要一些关于如何在我的 node.js 应用程序中为多个用户使用 rethinkDb 的 change-feed 的建议。
基本上我希望当用户登录我们的网络应用程序时,我想为该特定用户设置一个更改提要,以监控对用户组织过滤的特定表的更改。
我在想,当用户连接时,他们也将通过 socketio 连接,我可以在连接时为用户分配一个 change-feed。然后在断开连接时关闭该用户光标。
可能是这样的:
io.on('connection', (socket)=> {
//Assume user information is in socket.user
r.db('database').table('entries').filter({organization: socket.user.organization}).changes().run(conn, (err, cursor){
cursor_holder[socket.user.id] = cursor //Maybe hold the cursors in memory while the user is connected?
cursor.each((err, entry)=>{
socket.emit('update', entry);
})
})
socket.on('disconnect', ()=>{
cursor_holder[socket.user.id].close() //I dont know what the exact close method is for the feed.
})
}
请原谅代码中的任何错误,但这是我处理最终目标的最初想法。
我只是想知道您对如何正确处理我之前所说的最终目标的任何建议。
提前感谢大家的时间和建议。非常感谢。
【问题讨论】:
-
您测试该代码时发生了什么?
标签: javascript node.js rethinkdb