我正在使用带有PHP后端的javascript pusher库(angularjs)。
JS:
// Enable pusher logging - don't include this in production
Pusher.logToConsole = true;
var pusher = new Pusher('API_KEY', {
cluster: 'ap2',
encrypted: true
});
var channel = pusher.subscribe('my-channel');
channel.bind('my-event', function (data) {
common.flashMsg('success', data.message);
});
用于绑定和取消绑定代码:
$scope.workerStatus = function (status) {
if (status == 'available') {
common.flashMsg('success', "Welcome Again...!");
channel.bind('my-event', function (data) {
common.flashMsg('success', data.message);
});
} else {
common.flashMsg("error", "You're now offline. Good Bye.");
channel.unbind('my-event', function () {
common.flashMsg('success', data.message);
});
}
}
我想取消绑定channel
,当用户注销并停止通知,但频道unbind
事件无效时,用户仍然可以收到通知。
我错过了什么?
答案 0 :(得分:-1)
我认为您遇到问题的原因是您正在向unbind
电话传递函数。尝试省略第二个参数以删除该事件的所有侦听器。如果您有多个特定处理程序,则保留传入事件处理程序以取消绑定该特定处理程序。如果您将多个事件处理程序绑定到事件并且只想取消绑定其中一个事件处理程序,这将非常有用。
在此处查看更多内容:https://github.com/pusher/pusher-js#bind-and-unbind