diff --git a/actioncable/app/assets/javascripts/action_cable/connection.coffee b/actioncable/app/assets/javascripts/action_cable/connection.coffee index 78028bda3c4e900e3623d61f442eb5fbb7a53e52..a67ad6e915f90a1a418a20e2d06806b8ed810379 100644 --- a/actioncable/app/assets/javascripts/action_cable/connection.coffee +++ b/actioncable/app/assets/javascripts/action_cable/connection.coffee @@ -21,6 +21,7 @@ class ActionCable.Connection throw new Error("Existing connection must be closed before opening") else console.log("[cable] Opening WebSocket, current state is #{@getState()}", Date.now()) + @uninstallEventHandlers() if @webSocket? @webSocket = new WebSocket(@consumer.url) @installEventHandlers() true @@ -60,6 +61,11 @@ class ActionCable.Connection @webSocket["on#{eventName}"] = handler return + uninstallEventHandlers: -> + for eventName of @events + @webSocket["on#{eventName}"] = -> + return + events: message: (event) -> {identifier, message, type} = JSON.parse(event.data)