假设有一些用户,比如 100 个。每个用户有,比如 100 个项目,其中一部分由其他用户共享给用户。每个项目都有一个名称。
所以...我想要的是,如果我编辑 user1 的 item1 的名称,它应该更新所有拥有 item1 的用户。
我已经设置了必要的权限,并且 REST api 正在控制器上工作。
现在我想在phoenix中实现实时更新和频道是合适的。如果我有一个带有 topic 的频道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);
})
});