Я использую Pusher (pusher.com), чтобы инициировать уведомление для всех зарегистрированных клиентов всякий раз, когда администратор отправляет их.Событие Pusher запускается дважды
По какой-то причине событие стреляет дважды, хотя я его запускаю только один раз.
Client код сторона подписки:
var handleToastrListener = function() {
var pusher = new Pusher("913284db62a0cc237db4");
var channel = pusher.subscribe('toastr-channel');
channel.bind('new-toast', function(data) {
toastr.options = data.options;
var $toast = toastr[data.scf](data.msg, data.title);
return true;
});
}
handleToastrListener();
стороне сервера опубликовать код (PHP с использованием пакета толкатель):
$pusher = new Pusher(PUSHER_KEY, PUSHER_SECRET, PUSHER_APP_ID);
$pusher->trigger('toastr-channel', 'new-toast', $input);
отладки консоль толкателя показывает, что только одно сообщение было получено.
Толкатель-JS каротаж Javascript, однако, показывает два сообщения:
Pusher : Event recd : {"event":"new-toast","data":{"options":{"positionClass":"toast-top-right","onclick":"","showDuration":"1000","hideDuration":"1000","timeOut":"5000","extendedTimeOut":"1000","showEasing":"swing","hideEasing":"linear","showMethod":"fadeIn","hideMethod":"fadeOut"},"title":"Toastr Notifications","msg":"Gnome & Growl type non-blocking notifications","scf":"success"},"channel":"toastr-channel"} app.js:143
Pusher : Event recd : {"event":"new-toast","data":{"options":{"positionClass":"toast-top-right","onclick":"","showDuration":"1000","hideDuration":"1000","timeOut":"5000","extendedTimeOut":"1000","showEasing":"swing","hideEasing":"linear","showMethod":"fadeIn","hideMethod":"fadeOut"},"title":"Toastr Notifications","msg":"Gnome & Growl type non-blocking notifications","scf":"success"},"channel":"toastr-channel"}
глядя дальше, я обнаружил, что подписка происходит дважды, хотя я называю это только один раз:
Pusher : Event sent : {"event":"pusher:subscribe","data":{"channel":"toastr-channel"}} app.js:143
Pusher : Event recd : {"event":"pusher_internal:subscription_succeeded","data":{},"channel":"toastr-channel"} app.js:143
Pusher : No callbacks on toastr-channel for pusher:subscription_succeeded app.js:143
Pusher : State changed : connecting -> connected app.js:143
Pusher : Event sent : {"event":"pusher:subscribe","data":{"channel":"toastr-channel"}} app.js:143
Pusher : Event recd : {"event":"pusher_internal:subscription_succeeded","data":{},"channel":"toastr-channel"} app.js:143
Pusher : No callbacks on toastr-channel for pusher:subscription_succeeded
В консоли отладки отображается только одно сообщение, но в журнале отображаются два. Соответственно, я обновил свой вопрос. – Matanya
Ну, это неловко. Оказывается, я дважды вызывал дескриптор в разных местах моего кода – Matanya