From 9a55ac9376df0fdc32bc9c6b21c8323702eaaa78 Mon Sep 17 00:00:00 2001 From: Zachary Chai Date: Tue, 31 Jan 2017 10:52:04 -0500 Subject: [PATCH] cleanup old websockets on page load --- .../javascripts/channels/meeting_updates.js | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/channels/meeting_updates.js b/app/assets/javascripts/channels/meeting_updates.js index b872ac70..ddde60f8 100644 --- a/app/assets/javascripts/channels/meeting_updates.js +++ b/app/assets/javascripts/channels/meeting_updates.js @@ -24,14 +24,10 @@ }; var enableMeetingUpdates = function() { - var meeting_id = ''; - if ($(".page-wrapper.rooms").data('main-room') === false) { - meeting_id = $(".page-wrapper.rooms").data('id'); - } - App.messages = App.cable.subscriptions.create({ + App.meeting_update = App.cable.subscriptions.create({ channel: 'MeetingUpdatesChannel', admin_id: $(".page-wrapper.rooms").data('admin-id'), - meeting_id: meeting_id + meeting_id: $(".page-wrapper.rooms").data('id') }, { received: function(data) { @@ -60,10 +56,21 @@ }); }; + var disableMeetingUpdates = function() { + App.meeting_update.unsubscribe(); + delete App.meeting_update + }; + $(document).on("turbolinks:load", function() { if ($("body[data-controller=landing]").get(0)) { if ($("body[data-action=rooms]").get(0)) { - enableMeetingUpdates(); + // disable meeting updates if enabled from a previous page + if (App.meeting_update) { + disableMeetingUpdates(); + } + if ($(".page-wrapper.rooms").data('main-room') === false) { + enableMeetingUpdates(); + } } } });