Created
March 21, 2017 05:40
-
-
Save zhenwusw/0f28d657a6e145ed14a3f4c5bc4b8464 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*! | |
* Pusher JavaScript Library v1.12.5 | |
* http://pusherapp.com/ | |
* | |
* Copyright 2011, Pusher | |
* Released under the MIT licence. | |
*/ | |
(function() { | |
if (Function.prototype.scopedTo === void 0) Function.prototype.scopedTo = function(a, b) { | |
var e = this; | |
return function() { | |
return e.apply(a, Array.prototype.slice.call(b || []).concat(Array.prototype.slice.call(arguments))) | |
} | |
}; | |
var c = function(a, b) { | |
this.options = b || {}; | |
this.key = a; | |
this.channels = new c.Channels; | |
this.global_emitter = new c.EventsDispatcher; | |
var e = this; | |
this.checkAppKey(); | |
this.connection = new c.Connection(this.key, this.options); | |
this.connection.bind("connected", function() { | |
e.subscribeAll() | |
}).bind("message", | |
function(b) { | |
var a = b.event.indexOf("pusher_internal:") === 0; | |
if (b.channel) { | |
var c; | |
(c = e.channel(b.channel)) && c.emit(b.event, b.data) | |
} | |
a || e.global_emitter.emit(b.event, b.data) | |
}).bind("disconnected", function() { | |
e.channels.disconnect() | |
}).bind("error", function(b) { | |
c.warn("Error", b) | |
}); | |
c.instances.push(this); | |
c.isReady && e.connect() | |
}; | |
c.instances = []; | |
c.prototype = { | |
channel: function(a) { | |
return this.channels.find(a) | |
}, | |
connect: function() { | |
this.connection.connect() | |
}, | |
disconnect: function() { | |
this.connection.disconnect() | |
}, | |
bind: function(a, | |
b) { | |
this.global_emitter.bind(a, b); | |
return this | |
}, | |
bind_all: function(a) { | |
this.global_emitter.bind_all(a); | |
return this | |
}, | |
subscribeAll: function() { | |
for (channelName in this.channels.channels) this.channels.channels.hasOwnProperty(channelName) && this.subscribe(channelName) | |
}, | |
subscribe: function(a) { | |
var b = this, | |
e = this.channels.add(a, this); | |
this.connection.state === "connected" && e.authorize(this.connection.socket_id, this.options, function(c, f) { | |
c ? e.emit("pusher:subscription_error", f) : b.send_event("pusher:subscribe", { | |
channel: a, | |
auth: f.auth, | |
channel_data: f.channel_data | |
}) | |
}); | |
return e | |
}, | |
unsubscribe: function(a) { | |
this.channels.remove(a); | |
this.connection.state === "connected" && this.send_event("pusher:unsubscribe", { | |
channel: a | |
}) | |
}, | |
send_event: function(a, b, e) { | |
return this.connection.send_event(a, b, e) | |
}, | |
checkAppKey: function() { | |
(this.key === null || this.key === void 0) && c.warn("Warning", "You must pass your app key when you instantiate Pusher.") | |
} | |
}; | |
c.Util = { | |
extend: function b(e, c) { | |
for (var f in c) e[f] = c[f] && c[f].constructor && c[f].constructor === Object ? b(e[f] || {}, c[f]) : c[f]; | |
return e | |
}, | |
stringify: function() { | |
for (var b = ["Pusher"], e = 0; e < arguments.length; e++) typeof arguments[e] === "string" ? b.push(arguments[e]) : window.JSON == void 0 ? b.push(arguments[e].toString()) : b.push(JSON.stringify(arguments[e])); | |
return b.join(" : ") | |
}, | |
arrayIndexOf: function(b, e) { | |
var c = Array.prototype.indexOf; | |
if (b == null) return -1; | |
if (c && b.indexOf === c) return b.indexOf(e); | |
for (i = 0, l = b.length; i < l; i++) | |
if (b[i] === e) return i; | |
return -1 | |
} | |
}; | |
c.debug = function() { | |
c.log && c.log(c.Util.stringify.apply(this, arguments)) | |
}; | |
c.warn = function() { | |
window.console && window.console.warn ? window.console.warn(c.Util.stringify.apply(this, arguments)) : c.log && c.log(c.Util.stringify.apply(this, arguments)) | |
}; | |
c.VERSION = "1.12.5"; | |
c.host = "127.0.0.1"; | |
c.ws_port = 8080; | |
c.wss_port = 443; | |
c.sockjs_host = "sockjs.pusher.com"; | |
c.sockjs_http_port = 80; | |
c.sockjs_https_port = 443; | |
c.sockjs_path = "/pusher"; | |
c.channel_auth_endpoint = "/pusher/auth"; | |
c.cdn_http = "http://js.pusher.com/"; | |
c.cdn_https = "https://d3dy5gmtp8yhk7.cloudfront.net/"; | |
c.dependency_suffix = ".min"; | |
c.channel_auth_transport = | |
"ajax"; | |
c.activity_timeout = 12E4; | |
c.pong_timeout = 3E4; | |
c.isReady = !1; | |
c.ready = function() { | |
c.isReady = !0; | |
for (var b = 0, e = c.instances.length; b < e; b++) c.instances[b].connect() | |
}; | |
this.Pusher = c | |
}).call(this); | |
(function() { | |
function c() { | |
this._callbacks = {} | |
} | |
function a(b) { | |
this.callbacks = new c; | |
this.global_callbacks = []; | |
this.failThrough = b | |
} | |
c.prototype.get = function(b) { | |
return this._callbacks[this._prefix(b)] | |
}; | |
c.prototype.add = function(b, a) { | |
var c = this._prefix(b); | |
this._callbacks[c] = this._callbacks[c] || []; | |
this._callbacks[c].push(a) | |
}; | |
c.prototype.remove = function(b, c) { | |
if (this.get(b)) { | |
var a = Pusher.Util.arrayIndexOf(this.get(b), c); | |
this._callbacks[this._prefix(b)].splice(a, 1) | |
} | |
}; | |
c.prototype._prefix = function(b) { | |
return "_" + b | |
}; | |
a.prototype.bind = function(b, c) { | |
this.callbacks.add(b, c); | |
return this | |
}; | |
a.prototype.unbind = function(b, c) { | |
this.callbacks.remove(b, c); | |
return this | |
}; | |
a.prototype.emit = function(b, c) { | |
for (var a = 0; a < this.global_callbacks.length; a++) this.global_callbacks[a](b, c); | |
var f = this.callbacks.get(b); | |
if (f) | |
for (a = 0; a < f.length; a++) f[a](c); | |
else this.failThrough && this.failThrough(b, c); | |
return this | |
}; | |
a.prototype.bind_all = function(b) { | |
this.global_callbacks.push(b); | |
return this | |
}; | |
this.Pusher.EventsDispatcher = a | |
}).call(this); | |
(function() { | |
function c(b, c, a) { | |
if (c[b] !== void 0) c[b](a) | |
} | |
function a(c, a, f) { | |
b.EventsDispatcher.call(this); | |
this.state = void 0; | |
this.errors = []; | |
this.stateActions = f; | |
this.transitions = a; | |
this.transition(c) | |
} | |
var b = this.Pusher; | |
a.prototype.transition = function(a, g) { | |
var f = this.state, | |
j = this.stateActions; | |
if (f && b.Util.arrayIndexOf(this.transitions[f], a) == -1) throw this.emit("invalid_transition_attempt", { | |
oldState: f, | |
newState: a | |
}), Error("Invalid transition [" + f + " to " + a + "]"); | |
c(f + "Exit", j, g); | |
c(f + "To" + (a.substr(0, 1).toUpperCase() + | |
a.substr(1)), j, g); | |
c(a + "Pre", j, g); | |
this.state = a; | |
this.emit("state_change", { | |
oldState: f, | |
newState: a | |
}); | |
c(a + "Post", j, g) | |
}; | |
a.prototype.is = function(b) { | |
return this.state === b | |
}; | |
a.prototype.isNot = function(b) { | |
return this.state !== b | |
}; | |
b.Util.extend(a.prototype, b.EventsDispatcher.prototype); | |
this.Pusher.Machine = a | |
}).call(this); | |
(function() { | |
var c = function() { | |
var a = this; | |
Pusher.EventsDispatcher.call(this); | |
window.addEventListener !== void 0 && (window.addEventListener("online", function() { | |
a.emit("online", null) | |
}, !1), window.addEventListener("offline", function() { | |
a.emit("offline", null) | |
}, !1)) | |
}; | |
c.prototype.isOnLine = function() { | |
return window.navigator.onLine === void 0 ? !0 : window.navigator.onLine | |
}; | |
Pusher.Util.extend(c.prototype, Pusher.EventsDispatcher.prototype); | |
this.Pusher.NetInfo = c | |
}).call(this); | |
(function() { | |
function c(a) { | |
a.connectionWait = 0; | |
a.openTimeout = b.TransportType === "native" ? 4E3 : b.TransportType === "flash" ? 7E3 : 6E3; | |
a.connectedTimeout = 2E3; | |
a.connectionSecure = a.compulsorySecure; | |
a.failedAttempts = 0 | |
} | |
function a(a, s) { | |
function k() { | |
d.openTimeout < j && (d.openTimeout += g); | |
d.connectedTimeout < t && (d.connectedTimeout += f); | |
if (d.compulsorySecure !== !0) d.connectionSecure = !d.connectionSecure; | |
d.failedAttempts++ | |
} | |
function u(a) { | |
a = a || document.location.protocol === "https:"; | |
return (a ? "wss://" : "ws://") + b.host + ":" + (a ? b.wss_port : | |
b.ws_port) | |
} | |
function v(a) { | |
a = a || document.location.protocol === "https:"; | |
return (a ? "https://" : "http://") + b.sockjs_host + ":" + (a ? b.sockjs_https_port : b.sockjs_http_port) + b.sockjs_path | |
} | |
function m() { | |
d._machine.transition("impermanentlyClosing") | |
} | |
function p() { | |
d._activityTimer && clearTimeout(d._activityTimer); | |
if (d.ping) d._activityTimer = setTimeout(function() { | |
d.send_event("pusher:ping", {}); | |
d._activityTimer = setTimeout(function() { | |
d.socket.close() | |
}, d.options.pong_timeout || b.pong_timeout) | |
}, d.options.activity_timeout || | |
b.activity_timeout) | |
} | |
function q() { | |
var b = d.connectionWait; | |
if (b === 0 && d.connectedAt) { | |
var a = (new Date).getTime() - d.connectedAt; | |
a < 1E3 && (b = 1E3 - a) | |
} | |
return b | |
} | |
function w(b) { | |
b = r(b); | |
if (b !== void 0) | |
if (b.event === "pusher:connection_established") d._machine.transition("connected", b.data.socket_id); | |
else if (b.event === "pusher:error") { | |
var a = b.data.code; | |
d.emit("error", { | |
type: "PusherError", | |
data: { | |
code: a, | |
message: b.data.message | |
} | |
}); | |
a === 4E3 ? (d.compulsorySecure = !0, d.connectionSecure = !0, d.options.encrypted = !0, m()) : a < 4100 ? d._machine.transition("permanentlyClosing") : | |
a < 4200 ? (d.connectionWait = 1E3, d._machine.transition("waiting")) : a < 4300 ? m() : d._machine.transition("permanentlyClosing") | |
} | |
} | |
function x(a) { | |
p(); | |
a = r(a); | |
if (a !== void 0) { | |
b.debug("Event recd", a); | |
switch (a.event) { | |
case "pusher:error": | |
d.emit("error", { | |
type: "PusherError", | |
data: a.data | |
}); | |
break; | |
case "pusher:ping": | |
d.send_event("pusher:pong", {}) | |
} | |
d.emit("message", a) | |
} | |
} | |
function r(b) { | |
try { | |
var a = JSON.parse(b.data); | |
if (typeof a.data === "string") try { | |
a.data = JSON.parse(a.data) | |
} catch (c) { | |
if (!(c instanceof SyntaxError)) throw c; | |
} | |
return a | |
} catch (e) { | |
d.emit("error", { | |
type: "MessageParseError", | |
error: e, | |
data: b.data | |
}) | |
} | |
} | |
function n() { | |
d._machine.transition("waiting") | |
} | |
function o(b) { | |
d.emit("error", { | |
type: "WebSocketError", | |
error: b | |
}) | |
} | |
function h(a, c) { | |
var e = d.state; | |
d.state = a; | |
e !== a && (b.debug("State changed", e + " -> " + a), d.emit("state_change", { | |
previous: e, | |
current: a | |
}), d.emit(a, c)) | |
} | |
var d = this; | |
b.EventsDispatcher.call(this); | |
this.ping = !0; | |
this.options = b.Util.extend({ | |
encrypted: !1 | |
}, s); | |
this.netInfo = new b.NetInfo; | |
this.netInfo.bind("online", function() { | |
d._machine.is("waiting") && (d._machine.transition("connecting"), | |
h("connecting")) | |
}); | |
this.netInfo.bind("offline", function() { | |
if (d._machine.is("connected")) d.socket.onclose = void 0, d.socket.onmessage = void 0, d.socket.onerror = void 0, d.socket.onopen = void 0, d.socket.close(), d.socket = void 0, d._machine.transition("waiting") | |
}); | |
this._machine = new b.Machine("initialized", e, { | |
initializedPre: function() { | |
d.compulsorySecure = d.options.encrypted; | |
d.key = a; | |
d.socket = null; | |
d.socket_id = null; | |
d.state = "initialized" | |
}, | |
waitingPre: function() { | |
d.netInfo.isOnLine() ? (d.failedAttempts < 2 ? h("connecting") : | |
(h("unavailable"), d.connectionWait = 1E4), d.connectionWait > 0 && d.emit("connecting_in", q()), d._waitingTimer = setTimeout(function() { | |
d._machine.transition("connecting") | |
}, q())) : h("unavailable") | |
}, | |
waitingExit: function() { | |
clearTimeout(d._waitingTimer) | |
}, | |
connectingPre: function() { | |
if (d.netInfo.isOnLine() === !1) d._machine.transition("waiting"), h("unavailable"); | |
else { | |
var a = "/app/" + d.key + "?protocol=5&client=js&version=" + b.VERSION + "&flash=" + (b.TransportType === "flash" ? "true" : "false"); | |
if (b.TransportType === "sockjs") { | |
b.debug("Connecting to sockjs", | |
b.sockjs); | |
var c = v(d.connectionSecure); | |
d.ping = !1; | |
d.socket = new SockJS(c); | |
d.socket.onopen = function() { | |
d.socket.send(JSON.stringify({ | |
path: a | |
})); | |
d._machine.transition("open") | |
} | |
} else c = u(d.connectionSecure) + a, b.debug("Connecting", c), d.socket = new b.Transport(c), d.socket.onopen = function() { | |
d._machine.transition("open") | |
}; | |
d.socket.onclose = n; | |
d.socket.onerror = o; | |
d._connectingTimer = setTimeout(m, d.openTimeout) | |
} | |
}, | |
connectingExit: function() { | |
clearTimeout(d._connectingTimer); | |
d.socket.onopen = void 0 | |
}, | |
connectingToWaiting: function() { | |
k() | |
}, | |
connectingToImpermanentlyClosing: function() { | |
k() | |
}, | |
openPre: function() { | |
d.socket.onmessage = w; | |
d.socket.onerror = o; | |
d.socket.onclose = n; | |
d._openTimer = setTimeout(m, d.connectedTimeout) | |
}, | |
openExit: function() { | |
clearTimeout(d._openTimer); | |
d.socket.onmessage = void 0 | |
}, | |
openToWaiting: function() { | |
k() | |
}, | |
openToImpermanentlyClosing: function() { | |
k() | |
}, | |
connectedPre: function(b) { | |
d.socket_id = b; | |
d.socket.onmessage = x; | |
d.socket.onerror = o; | |
d.socket.onclose = n; | |
c(d); | |
d.connectedAt = (new Date).getTime(); | |
p() | |
}, | |
connectedPost: function() { | |
h("connected") | |
}, | |
connectedExit: function() { | |
d._activityTimer && clearTimeout(d._activityTimer); | |
h("disconnected") | |
}, | |
impermanentlyClosingPost: function() { | |
if (d.socket) d.socket.onclose = n, d.socket.close() | |
}, | |
permanentlyClosingPost: function() { | |
d.socket ? (d.socket.onclose = function() { | |
c(d); | |
d._machine.transition("permanentlyClosed") | |
}, d.socket.close()) : (c(d), d._machine.transition("permanentlyClosed")) | |
}, | |
failedPre: function() { | |
h("failed"); | |
b.debug("WebSockets are not available in this browser.") | |
}, | |
permanentlyClosedPost: function() { | |
h("disconnected") | |
} | |
}) | |
} | |
var b = this.Pusher, | |
e = { | |
initialized: ["waiting", "failed"], | |
waiting: ["connecting", "permanentlyClosed"], | |
connecting: ["open", "permanentlyClosing", "impermanentlyClosing", "waiting"], | |
open: ["connected", "permanentlyClosing", "impermanentlyClosing", "waiting"], | |
connected: ["permanentlyClosing", "waiting"], | |
impermanentlyClosing: ["waiting", "permanentlyClosing"], | |
permanentlyClosing: ["permanentlyClosed"], | |
permanentlyClosed: ["waiting", "failed"], | |
failed: ["permanentlyClosed"] | |
}, | |
g = 2E3, | |
f = 2E3, | |
j = 1E4, | |
t = 1E4; | |
a.prototype.connect = function() { | |
!this._machine.is("failed") && | |
!b.Transport ? this._machine.transition("failed") : this._machine.is("initialized") ? (c(this), this._machine.transition("waiting")) : this._machine.is("waiting") && this.netInfo.isOnLine() === !0 ? this._machine.transition("connecting") : this._machine.is("permanentlyClosed") && (c(this), this._machine.transition("waiting")) | |
}; | |
a.prototype.send = function(b) { | |
if (this._machine.is("connected")) { | |
var a = this; | |
setTimeout(function() { | |
a.socket.send(b) | |
}, 0); | |
return !0 | |
} else return !1 | |
}; | |
a.prototype.send_event = function(a, c, e) { | |
a = { | |
event: a, | |
data: c | |
}; | |
e && (a.channel = e); | |
b.debug("Event sent", a); | |
return this.send(JSON.stringify(a)) | |
}; | |
a.prototype.disconnect = function() { | |
this._machine.is("permanentlyClosed") || (this._machine.is("waiting") || this._machine.is("failed") ? this._machine.transition("permanentlyClosed") : this._machine.transition("permanentlyClosing")) | |
}; | |
b.Util.extend(a.prototype, b.EventsDispatcher.prototype); | |
this.Pusher.Connection = a | |
}).call(this); | |
(function() { | |
Pusher.Channels = function() { | |
this.channels = {} | |
}; | |
Pusher.Channels.prototype = { | |
add: function(a, b) { | |
var c = this.find(a); | |
c || (c = Pusher.Channel.factory(a, b), this.channels[a] = c); | |
return c | |
}, | |
find: function(a) { | |
return this.channels[a] | |
}, | |
remove: function(a) { | |
delete this.channels[a] | |
}, | |
disconnect: function() { | |
for (var a in this.channels) this.channels[a].disconnect() | |
} | |
}; | |
Pusher.Channel = function(a, b) { | |
var c = this; | |
Pusher.EventsDispatcher.call(this, function(b) { | |
Pusher.debug("No callbacks on " + a + " for " + b) | |
}); | |
this.pusher = b; | |
this.name = | |
a; | |
this.subscribed = !1; | |
this.bind("pusher_internal:subscription_succeeded", function(a) { | |
c.onSubscriptionSucceeded(a) | |
}) | |
}; | |
Pusher.Channel.prototype = { | |
init: function() {}, | |
disconnect: function() { | |
this.subscribed = !1; | |
this.emit("pusher_internal:disconnected") | |
}, | |
onSubscriptionSucceeded: function() { | |
this.subscribed = !0; | |
this.emit("pusher:subscription_succeeded") | |
}, | |
authorize: function(a, b, c) { | |
return c(!1, {}) | |
}, | |
trigger: function(a, b) { | |
return this.pusher.send_event(a, b, this.name) | |
} | |
}; | |
Pusher.Util.extend(Pusher.Channel.prototype, Pusher.EventsDispatcher.prototype); | |
Pusher.Channel.PrivateChannel = { | |
authorize: function(a, b, c) { | |
var g = this; | |
return (new Pusher.Channel.Authorizer(this, Pusher.channel_auth_transport, b)).authorize(a, function(a, b) { | |
a || g.emit("pusher_internal:authorized", b); | |
c(a, b) | |
}) | |
} | |
}; | |
Pusher.Channel.PresenceChannel = { | |
init: function() { | |
this.members = new c(this) | |
}, | |
onSubscriptionSucceeded: function() { | |
this.subscribed = !0 | |
} | |
}; | |
var c = function(a) { | |
var b = this, | |
c = function() { | |
this._members_map = {}; | |
this.count = 0; | |
this.me = null | |
}; | |
c.call(this); | |
a.bind("pusher_internal:authorized", function(c) { | |
var e = | |
JSON.parse(c.channel_data); | |
a.bind("pusher_internal:subscription_succeeded", function(c) { | |
b._members_map = c.presence.hash; | |
b.count = c.presence.count; | |
b.me = b.get(e.user_id); | |
a.emit("pusher:subscription_succeeded", b) | |
}) | |
}); | |
a.bind("pusher_internal:member_added", function(c) { | |
b.get(c.user_id) === null && b.count++; | |
b._members_map[c.user_id] = c.user_info; | |
a.emit("pusher:member_added", b.get(c.user_id)) | |
}); | |
a.bind("pusher_internal:member_removed", function(c) { | |
var e = b.get(c.user_id); | |
e && (delete b._members_map[c.user_id], b.count--, | |
a.emit("pusher:member_removed", e)) | |
}); | |
a.bind("pusher_internal:disconnected", function() { | |
c.call(b) | |
}) | |
}; | |
c.prototype = { | |
each: function(a) { | |
for (var b in this._members_map) a(this.get(b)) | |
}, | |
get: function(a) { | |
return this._members_map.hasOwnProperty(a) ? { | |
id: a, | |
info: this._members_map[a] | |
} : null | |
} | |
}; | |
Pusher.Channel.factory = function(a, b) { | |
var c = new Pusher.Channel(a, b); | |
a.indexOf("private-") === 0 ? Pusher.Util.extend(c, Pusher.Channel.PrivateChannel) : a.indexOf("presence-") === 0 && (Pusher.Util.extend(c, Pusher.Channel.PrivateChannel), | |
Pusher.Util.extend(c, Pusher.Channel.PresenceChannel)); | |
c.init(); | |
return c | |
} | |
}).call(this); | |
(function() { | |
Pusher.Channel.Authorizer = function(c, a, b) { | |
this.channel = c; | |
this.type = a; | |
this.authOptions = (b || {}).auth || {} | |
}; | |
Pusher.Channel.Authorizer.prototype = { | |
composeQuery: function(c) { | |
var c = "&socket_id=" + encodeURIComponent(c) + "&channel_name=" + encodeURIComponent(this.channel.name), | |
a; | |
for (a in this.authOptions.params) c += "&" + encodeURIComponent(a) + "=" + encodeURIComponent(this.authOptions.params[a]); | |
return c | |
}, | |
authorize: function(c, a) { | |
return Pusher.authorizers[this.type].call(this, c, a) | |
} | |
}; | |
Pusher.auth_callbacks = {}; | |
Pusher.authorizers = { | |
ajax: function(c, a) { | |
var b; | |
b = Pusher.XHR ? new Pusher.XHR : window.XMLHttpRequest ? new window.XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP"); | |
b.open("POST", Pusher.channel_auth_endpoint, !0); | |
b.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); | |
for (var e in this.authOptions.headers) b.setRequestHeader(e, this.authOptions.headers[e]); | |
b.onreadystatechange = function() { | |
if (b.readyState == 4) | |
if (b.status == 200) { | |
var c, e = !1; | |
try { | |
c = JSON.parse(b.responseText), e = !0 | |
} catch (j) { | |
a(!0, "JSON returned from webapp was invalid, yet status code was 200. Data was: " + | |
b.responseText) | |
} | |
e && a(!1, c) | |
} else Pusher.warn("Couldn't get auth info from your webapp", b.status), a(!0, b.status) | |
}; | |
b.send(this.composeQuery(c)); | |
return b | |
}, | |
jsonp: function(c, a) { | |
this.authOptions.headers !== void 0 && Pusher.warn("Warn", "To send headers with the auth request, you must use AJAX, rather than JSONP."); | |
var b = document.createElement("script"); | |
Pusher.auth_callbacks[this.channel.name] = function(b) { | |
a(!1, b) | |
}; | |
b.src = Pusher.channel_auth_endpoint + "?callback=" + encodeURIComponent("Pusher.auth_callbacks['" + this.channel.name + | |
"']") + this.composeQuery(c); | |
var e = document.getElementsByTagName("head")[0] || document.documentElement; | |
e.insertBefore(b, e.firstChild) | |
} | |
} | |
}).call(this); | |
var _require = function() { | |
function c(a, c) { | |
document.addEventListener ? a.addEventListener("load", c, !1) : a.attachEvent("onreadystatechange", function() { | |
(a.readyState == "loaded" || a.readyState == "complete") && c() | |
}) | |
} | |
function a(a, e) { | |
var g = document.getElementsByTagName("head")[0], | |
f = document.createElement("script"); | |
f.setAttribute("src", a); | |
f.setAttribute("type", "text/javascript"); | |
f.setAttribute("async", !0); | |
c(f, function() { | |
e() | |
}); | |
g.appendChild(f) | |
} | |
return function(b, c) { | |
for (var g = 0, f = 0; f < b.length; f++) a(b[f], function() { | |
b.length == | |
++g && setTimeout(c, 0) | |
}) | |
} | |
}(); | |
(function() { | |
!window.WebSocket && window.MozWebSocket && (window.WebSocket = window.MozWebSocket); | |
if (window.WebSocket) Pusher.Transport = window.WebSocket, Pusher.TransportType = "native"; | |
var c = (document.location.protocol == "http:" ? Pusher.cdn_http : Pusher.cdn_https) + Pusher.VERSION, | |
a = []; | |
window.JSON || a.push(c + "/json2" + Pusher.dependency_suffix + ".js"); | |
if (!window.WebSocket) window.WEB_SOCKET_DISABLE_AUTO_INITIALIZATION = !0, window.WEB_SOCKET_SUPPRESS_CROSS_DOMAIN_SWF_ERROR = !0, a.push(c + "/flashfallback" + Pusher.dependency_suffix + | |
".js"); | |
var b = function() { | |
return window.WebSocket ? function() { | |
Pusher.ready() | |
} : function() { | |
window.WebSocket ? (Pusher.Transport = window.WebSocket, Pusher.TransportType = "flash", window.WEB_SOCKET_SWF_LOCATION = c + "/WebSocketMain.swf", WebSocket.__addTask(function() { | |
Pusher.ready() | |
}), WebSocket.__initialize()) : (sockjsPath = c + "/sockjs" + Pusher.dependency_suffix + ".js", _require([sockjsPath], function() { | |
Pusher.Transport = SockJS; | |
Pusher.TransportType = "sockjs"; | |
Pusher.ready() | |
})) | |
} | |
}(), | |
e = function(a) { | |
var b = function() { | |
document.body ? | |
a() : setTimeout(b, 0) | |
}; | |
b() | |
}, | |
g = function() { | |
e(b) | |
}; | |
a.length > 0 ? _require(a, g) : g() | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment