diff --git a/dist/action_cable/connection.js b/dist/action_cable/connection.js index d273cee..1f90f4f 100644 --- a/dist/action_cable/connection.js +++ b/dist/action_cable/connection.js @@ -1 +1 @@ -var Connection,message_types,bind=function(t,e){return function(){return t.apply(e,arguments)}},slice=[].slice,indexOf=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};message_types=require("./internal").message_types,Connection=function(){function t(t){this.consumer=t,this.open=bind(this.open,this),this.open()}return t.reopenDelay=500,t.prototype.send=function(t){return this.isOpen()?(this.webSocket.send(JSON.stringify(t)),!0):!1},t.prototype.open=function(){if(this.webSocket&&!this.isState("closed"))throw new Error("Existing connection must be closed before opening");return this.webSocket=new WebSocket(this.consumer.url),this.installEventHandlers(),!0},t.prototype.close=function(){var t;return null!=(t=this.webSocket)?t.close():void 0},t.prototype.reopen=function(){if(this.isState("closed"))return this.open();try{return this.close()}finally{setTimeout(this.open,this.constructor.reopenDelay)}},t.prototype.isOpen=function(){return this.isState("open")},t.prototype.isState=function(){var t,e;return e=1<=arguments.length?slice.call(arguments,0):[],t=this.getState(),indexOf.call(e,t)>=0},t.prototype.getState=function(){var t,e,n;for(e in WebSocket)if(n=WebSocket[e],n===(null!=(t=this.webSocket)?t.readyState:void 0))return e.toLowerCase();return null},t.prototype.installEventHandlers=function(){var t,e;for(t in this.events)e=this.events[t].bind(this),this.webSocket["on"+t]=e},t.prototype.events={message:function(t){var e,n,s,i;switch(s=JSON.parse(t.data),e=s.identifier,n=s.message,i=s.type,i){case message_types.confirmation:return this.consumer.subscriptions.notify(e,"connected");case message_types.rejection:return this.consumer.subscriptions.reject(e);default:return this.consumer.subscriptions.notify(e,"received",n)}},open:function(){return this.disconnected=!1,this.consumer.subscriptions.reload()},close:function(){return this.disconnect()},error:function(){return this.disconnect()}},t.prototype.disconnect=function(){return this.disconnected?void 0:(this.disconnected=!0,this.consumer.subscriptions.notifyAll("disconnected"))},t.prototype.toJSON=function(){return{state:this.getState()}},t}(),module.exports=Connection; \ No newline at end of file +var Connection,message_types,bind=function(t,e){return function(){return t.apply(e,arguments)}},slice=[].slice,indexOf=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};message_types=require("./internal").message_types,Connection=function(){function t(t){this.consumer=t,this.open=bind(this.open,this),this.open()}return t.reopenDelay=500,t.prototype.send=function(t){return this.isOpen()?(this.webSocket.send(JSON.stringify(t)),!0):!1},t.prototype.open=function(){if(this.webSocket&&!this.isState("closed"))throw new Error("Existing connection must be closed before opening");return this.webSocket=new WebSocket(this.consumer.url),this.installEventHandlers(),!0},t.prototype.close=function(){var t;return null!=(t=this.webSocket)?t.close():void 0},t.prototype.reopen=function(){if(this.isState("closed"))return this.open();try{return this.close()}finally{setTimeout(this.open,this.constructor.reopenDelay)}},t.prototype.isOpen=function(){return this.isState("open")},t.prototype.isState=function(){var t,e;return e=1<=arguments.length?slice.call(arguments,0):[],t=this.getState(),indexOf.call(e,t)>=0},t.prototype.getState=function(){var t,e,n;for(e in WebSocket)if(n=WebSocket[e],n===(null!=(t=this.webSocket)?t.readyState:void 0))return e.toLowerCase();return null},t.prototype.installEventHandlers=function(){var t,e;for(t in this.events)e=this.events[t].bind(this),this.webSocket["on"+t]=e},t.prototype.events={message:function(t){var e,n,s,i;switch(s=JSON.parse(t.data),e=s.identifier,n=s.message,i=s.type,i){case message_types.confirmation:return this.consumer.subscriptions.notify(e,"connected");case message_types.rejection:return this.consumer.subscriptions.reject(e);default:if(e){return this.consumer.subscriptions.notify(e,"received",n)}else{return this.consumer.subscriptions.notify("received",n)}},open:function(){return this.disconnected=!1,this.consumer.subscriptions.reload()},close:function(){return this.disconnect()},error:function(){return this.disconnect()}},t.prototype.disconnect=function(){return this.disconnected?void 0:(this.disconnected=!0,this.consumer.subscriptions.notifyAll("disconnected"))},t.prototype.toJSON=function(){return{state:this.getState()}},t}(),module.exports=Connection; diff --git a/lib/action_cable/connection.coffee b/lib/action_cable/connection.coffee index 3bc91a2..1c1e328 100644 --- a/lib/action_cable/connection.coffee +++ b/lib/action_cable/connection.coffee @@ -61,7 +61,10 @@ class Connection when message_types.rejection @consumer.subscriptions.reject(identifier) else - @consumer.subscriptions.notify(identifier, 'received', message) + if identifier + @consumer.subscriptions.notify(identifier, 'received', message) + else + @consumer.subscriptions.notify('received', message) open: -> @disconnected = false