【发布时间】:2017-12-11 12:26:29
【问题描述】:
假设有一些用户,比如 100 个。每个用户有,比如 100 个项目,其中一部分由其他用户共享给用户。每个项目都有一个名称。
所以...我想要的是,如果我编辑 user1 的 item1 的名称,它应该更新所有拥有 item1 的用户。
我已经设置了必要的权限,并且 REST api 正在控制器上运行。
现在我想在phoenix 中实现实时更新和频道是合适的。如果我有一个主题为item:*的频道,我可以将所有用户的所有项目都考虑在内。
所以,如果有一个 user1 有 item1, item2, item3...., item100。我将如何在 javascript 端设置监听器?我认为这不是正确的方法吗?
有人可以帮我解决一下结构吗?谢谢!
更新:以下方法有效吗?
forEach(function(items, val) {
var topic = "item:" + val
// Join the topic
var channel = socket.channel(topic, {})
channel.join()
.receive("ok", data => {
console.log("Joined topic", topic)
})
.receive("error", resp => {
console.log("Unable to join topic", topic)
})
channel.on("name_changed", resp => {
console.log("name was changed of this item", resp);
})
});
【问题讨论】:
-
您为什么不尝试一下并发布结果?我想它不会起作用,因为你在每次迭代时都会覆盖
channel但是......
标签: elixir phoenix-framework phoenix-channels