【发布时间】:2015-07-07 10:34:36
【问题描述】:
我目前正在开发一个实时应用程序,它允许用户将其他人添加到“团队”中,我想通知用户他们已被实时添加。但是我无法终生工作如何实现这一点,我认为文档最让我感到困惑,
用户必须订阅触发事件的频道
这怎么可能?当然是因为我正在尝试实时将一些人添加到一个组中,而该组是一个独特的频道,我也不能订阅它吗?
这是我的尝试,以及对过程的解释。
1) 用户登录到应用程序并订阅他们唯一的频道“presence-user_{id}”,其中 id 是来自数据库的用户 id。
2)其他地方的用户想要将用户添加到他们的组中,选择运行以下代码的用户,
App['presence-' + 'user_' + newUser.get('id')] = App.pusher.subscribe('presence-user_' + newUser.get('id'));
App['presence-' + 'user_' + newUser.get('id')].trigger('client-user-added', { project : self.model.get('id') });
newUser 是一个主干模型,详细说明了所选用户的用户详细信息。我在这里要做的是将尝试将用户加入群组的用户订阅到该用户频道。
这应该会触发这个方法监听器,
App['presence-' + 'user_' + App.Session.get('user_id')].bind('client-user-added', this.RT_addProject, this);
这反过来应该在添加的客户端应用程序上触发以下方法,
RT_addProject: function(data) {
console.log(data);
},
但事实并非如此。触发客户端事件的正确方法是什么?
TLDR;我想在使用推送器将用户添加到组时实时通知用户。
【问题讨论】:
标签: javascript backbone.js real-time pusher