/
pubnub-3.1.min.js
7 lines (7 loc) · 3.2 KB
/
pubnub-3.1.min.js
1
2
3
4
5
6
7
(function(){function p(b,a){if(b&&a)if(typeof b[0]!="undefined")for(var e=0,g=b.length;e<g;)a.call(b[e],b[e],e++);else for(e in b)b.hasOwnProperty&&b.hasOwnProperty(e)&&a.call(b[e],e,b[e])}function u(b,a){var e=[];p(b||[],function(g,j){e.push(a(g,j))});return e}function q(b){return u(encodeURIComponent(b).split(""),function(a){return"-_.!~*'()".indexOf(a)<0?a:"%"+a.charCodeAt(0).toString(16).toUpperCase()}).join("")}function k(b){var a,e=function(){if(!j){j=1;clearTimeout(l);try{response=JSON.parse(a.responseText)}catch(f){return d(1)}c(response)}},
g=0,j=0,l=setTimeout(function(){d(1)},v),r=b.fail||function(){},c=b.success||function(){},d=function(f){if(!g){g=1;clearTimeout(l);if(a){a.onerror=a.onload=null;a.abort&&a.abort();a=null}f&&r()}};try{a=typeof XDomainRequest!=="undefined"&&new XDomainRequest||new XMLHttpRequest;a.onerror=a.onabort=function(){d(1)};a.onload=a.onloadend=e;a.timeout=v;a.open("GET",b.url.join(z),true);a.send()}catch(h){d(0);return k(b)}return d}function s(b){var a={},e=b.publish_key||"",g=b.subscribe_key||"",j=b.ssl?"s":
"",l="http"+j+"://"+(b.origin||"pubsub.pubnub.com"),r={history:function(c,d){d=c.callback||d;var h=c.limit||100,f=c.channel;f&&d&&k({url:[l,"history",g,q(f),0,h],success:function(i){d(i)},fail:function(i){d(i)}})},time:function(c){k({url:[l,"time",0],success:function(d){c(d[0])},fail:function(){c(0)}})},uuid:function(c){k({url:["http"+j+"://pubnub-prod.appspot.com/uuid"],success:function(d){c(d[0])},fail:function(){c(0)}})},publish:function(c,d){d=d||c.callback||function(){};var h=c.message,f=c.channel;
if(h)if(f)if(e){h=JSON.stringify(h);h=[l,"publish",e,g,0,q(f),0,q(h)];k({success:function(i){d(i)},fail:function(){d([0,"Disconnected"])},url:h})}},unsubscribe:function(c){c=c.channel;if(c in a){a[c].connected=0;a[c].done&&a[c].done(0)}},subscribe:function(c,d){function h(){if(a[f].connected)a[f].done=k({callback:0,url:[A,"subscribe",g,q(f),0,w],fail:function(){if(!m){m=1;B()}setTimeout(h,1E3);r.time(function(n){if(n&&m){m=0;x()}n||C()})},success:function(n){if(a[f].connected){if(!y){y=1;D()}if(m){m=
0;x()}i=t.set(g+f,w=i&&t.get(g+f)||n[1]);p(n[0],function(E){d(E,n)});setTimeout(h,10)}}})}var f=c.channel;d=d||c.callback;var i=c.restore,w=0,C=c.error||function(){},D=c.connect||function(){},x=c.reconnect||function(){},B=c.disconnect||function(){},m=0,y=0,A=F(l);if(f)if(d)if(g){f in a||(a[f]={});if(!a[f].connected){a[f].connected=1;h()}}},xdr:k,db:t,each:p,map:u,events:o};return r}var t=function(){var b=typeof localStorage!="undefined"&&localStorage;return{get:function(a){try{if(b)return b.getItem(a);
if(document.cookie.indexOf(a)==-1)return null;return((document.cookie||"").match(RegExp(a+"=([^;]+)"))||[])[1]||null}catch(e){}},set:function(a,e){try{if(b)return b.setItem(a,e)&&0;document.cookie=a+"="+e+"; expires=Thu, 1 Aug 2030 20:00:00 UTC; path=/"}catch(g){}}}}(),z="/",v=31E4,F=function(){var b=Math.floor(Math.random()*9)+1;return function(a){return a.indexOf("pubsub")>0&&a.replace("pubsub","ps"+(++b<10?b:b=1))||a}}(),o={list:{},unbind:function(b){o.list[b]=[]},bind:function(b,a){(o.list[b]=
o.list[b]||[]).push(a)},fire:function(b,a){p(o.list[b]||[],function(e){e(a)})}};typeof module!=="undefined"&&(module.exports=s)||typeof exports!=="undefined"&&(exports.PN=s)||(PUBNUB=s)})();