Created
July 7, 2016 08:37
-
-
Save tonyxiao/03048ea0872b2dbde09f5c8193ee0712 to your computer and use it in GitHub Desktop.
Un-minified version of https://github.com/smilefam/SendBird-SDK-JavaScript :(
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
| ! function(e, n) { | |
| var t = n(); | |
| "function" == typeof define && define.amd ? define([], t.getInstance()) : "object" == typeof exports ? (module.exports = t.getInstance(), module.exports.SB = t, module.exports.sendbird = t.getInstance()) : (e.SB = t, e.sendbird = t.getInstance()) | |
| }(this, function() { | |
| function e() { | |
| try { | |
| if ("undefined" == typeof navigator || "undefined" == typeof navigator.userAgent) return !1; | |
| var e = navigator.userAgent.toLowerCase(); | |
| return -1 != e.indexOf("msie") ? parseInt(e.split("msie")[1]) : !1 | |
| } catch (n) { | |
| return !1 | |
| } | |
| } | |
| function n(n, r, s, i, a, o) { | |
| var c = t ? new t : new XMLHttpRequest, | |
| u = e(); | |
| if (!("withCredentials" in c) && u && 10 > u) { | |
| c = new XDomainRequest, c.withCredentials = !0; | |
| try { | |
| switch (s.toLowerCase()) { | |
| case "get": | |
| c.open("GET", n); | |
| break; | |
| default: | |
| c.open("POST", n) | |
| } | |
| } catch (g) { | |
| c.open("POST", n) | |
| } | |
| for (var p in i) r[p] = i[p]; | |
| c.onload = function() { | |
| var e = JSON.parse(c.responseText); | |
| e.error ? o(c.status, c.statusText) : a(e) | |
| }, c.onerror = function() { | |
| o(404, "There was a connection error") | |
| } | |
| } else { | |
| try { | |
| switch (c = t ? new t : new XMLHttpRequest, s.toLowerCase()) { | |
| case "get": | |
| c.open("GET", n); | |
| break; | |
| default: | |
| c.open("POST", n) | |
| } | |
| c.onload = function() { | |
| if (c.status >= m && c.status < v) { | |
| var e = c.responseText; | |
| a(JSON.parse(e)) | |
| } else o(c.status, c.statusText) | |
| }, c.onerror = function() { | |
| o(404, "There was a connection error") | |
| } | |
| } catch (d) { | |
| c = new ActiveXObject("Microsoft.XMLHTTP"); | |
| try { | |
| switch (s.toLowerCase()) { | |
| case "get": | |
| c.open("GET", n); | |
| break; | |
| default: | |
| c.open("POST", n) | |
| } | |
| } catch (g) { | |
| c.open("POST", n) | |
| } | |
| c.onreadystatechange = function() { | |
| if (4 == c.readyState) | |
| if (c.status >= m && c.status < v) { | |
| var e = c.responseText; | |
| a(JSON.parse(e)) | |
| } else o(c.status, c.statusText) | |
| } | |
| } | |
| c.setRequestHeader("Content-Type", "text/plain; charset=UTF-8"); | |
| for (var p in i) c.setRequestHeader(p, i[p]) | |
| } | |
| switch (s.toLowerCase()) { | |
| case "get": | |
| c.send(); | |
| break; | |
| default: | |
| c.send(JSON.stringify(r)) | |
| } | |
| } | |
| var t, r; | |
| try { | |
| t = "undefined" == typeof window ? require("xhr2") : null | |
| } catch (s) { | |
| t = null | |
| } | |
| if (t) { | |
| var i = require("http"), | |
| a = require("https"), | |
| o = new i.Agent({ | |
| keepAlive: !0, | |
| keepAliveMsecs: 6e4 | |
| }), | |
| c = new a.Agent({ | |
| keepAlive: !0, | |
| keepAliveMsecs: 6e4 | |
| }), | |
| u = {}; | |
| u.httpAgent = o, u.httpsAgent = c, t.nodejsSet(u) | |
| } | |
| try { | |
| r = "undefined" == typeof WebSocket ? require("websocket").w3cwebsocket : WebSocket | |
| } catch (s) { | |
| r = WebSocket | |
| } | |
| var g = !1, | |
| p = !1; | |
| try { | |
| var d = window.console || { | |
| log: function() {} | |
| } | |
| } catch (_) { | |
| var d = { | |
| log: function() {} | |
| } | |
| } | |
| var l = function(e) { | |
| g && d.log(e) | |
| }, | |
| f = function(e) { | |
| e = e || {}; | |
| for (var n = arguments.length, t = 1; n > t; t++) | |
| if (arguments[t]) | |
| for (var r in arguments[t]) arguments[t].hasOwnProperty(r) && (e[r] = arguments[t][r]); | |
| return e | |
| }; | |
| "function" != typeof String.prototype.trim && (String.prototype.trim = function() { | |
| return this.replace(/^\s+|\s+$/g, "") | |
| }); | |
| var m = 200, | |
| v = 400, | |
| S = function() { | |
| function e() { | |
| var e = new k; | |
| return e | |
| } | |
| var n, t = function(t) { | |
| var r = f({}, { | |
| newInstance: !1 | |
| }, t); | |
| return r.newInstance ? e() : (n || (n = e()), n) | |
| }; | |
| return { | |
| getInstance: t | |
| } | |
| }(), | |
| k = function() { | |
| function e(e) { | |
| return a(k + b.app_id), c + "v" + S.replace(/[^(0-9)]/gi, "") + "/" + e | |
| } | |
| function s(e) { | |
| return a(k + b.app_id), c + "v3/" + e | |
| } | |
| function i() { | |
| 0 !== O && (F = 3e3, M = 5, O = 0, l("=== Reset Reconnect Values ===")) | |
| } | |
| function a(e, t, r) { | |
| if (_) u = "ws://localtest.me:9000", c = "http://api.localtest.me:8000/", "function" == typeof t && t(); | |
| else { | |
| var s = (new Date).getTime() / 1e3; | |
| 0 == U || U - s > 300 ? n(e, {}, "GET", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| u = e.ws_server, c = e.api_server + "/", l("Routing Info Update: " + u + ", " + c), U = s, "function" == typeof t && t() | |
| }, function(e, n) { | |
| "function" == typeof r && r(e, n) | |
| }) : "function" == typeof t && t() | |
| } | |
| } | |
| function o(e) { | |
| b.app_id = e.app_id, b.guest_id = e.guest_id, b.user_name = e.user_name, b.image_url = void 0 == e.image_url || null == e.image_url ? "" : e.image_url, b.access_token = void 0 == e.access_token || null == e.access_token ? "" : e.access_token, X({ | |
| successFunc: function(n) { | |
| e.successFunc(n) | |
| }, | |
| errorFunc: function(n, t) { | |
| e.errorFunc(n, t) | |
| }, | |
| async: e.async | |
| }) | |
| } | |
| var c, u, _ = !1, | |
| S = "1", | |
| k = "https://api.sendbird.com/routing/", | |
| y = "2.4.20"; | |
| try { | |
| var h = encodeURI(navigator.userAgent) | |
| } catch (T) { | |
| var h = "undefined" | |
| } | |
| var F, M, O, P = "/?p=JS&pv=" + h + "&sv=" + y + "&ai=", | |
| w = "JS," + h + "," + y + ",", | |
| R = null, | |
| N = { | |
| MESG: "MESG", | |
| FILE: "FILE", | |
| LOGI: "LOGI", | |
| JOIN: "JOIN", | |
| SYSM: "SYSM", | |
| BRDM: "BRDM", | |
| MCUP: "MCUP", | |
| READ: "READ", | |
| TPST: "TPST", | |
| TPEN: "TPEN", | |
| BAAN: "BAAN", | |
| FREZ: "FREZ", | |
| PING: "PING", | |
| PONG: "PONG" | |
| }, | |
| b = {}, | |
| C = {}, | |
| I = 0, | |
| A = 0, | |
| E = null, | |
| G = null, | |
| B = null, | |
| L = 0, | |
| D = !1, | |
| J = 0, | |
| x = 1e4, | |
| U = 0; | |
| i(); | |
| var W = function(e, n) { | |
| switch (e) { | |
| case N.MESG: | |
| z.onMessageReceived(JSON.parse(n)); | |
| break; | |
| case N.SYSM: | |
| z.onSystemMessageReceived(JSON.parse(n)); | |
| break; | |
| case N.FILE: | |
| z.onFileMessageReceived(JSON.parse(n)); | |
| break; | |
| case N.BRDM: | |
| z.onBroadcastMessageReceived(JSON.parse(n)); | |
| break; | |
| case N.TPST: | |
| z.onTypeStartReceived(JSON.parse(n)); | |
| break; | |
| case N.TPEN: | |
| z.onTypeEndReceived(JSON.parse(n)); | |
| break; | |
| case N.PONG: | |
| i(), l(N.PONG); | |
| break; | |
| case N.READ: | |
| z.onReadReceived(JSON.parse(n)); | |
| break; | |
| case N.BAAN: | |
| z.onBanReceived(JSON.parse(n)); | |
| break; | |
| case N.FREZ: | |
| var t = JSON.parse(n), | |
| r = !1; | |
| try { | |
| r = t.freeze | |
| } catch (s) { | |
| r = !1 | |
| } | |
| C.data = JSON.stringify({ | |
| freeze: r | |
| }), z.onChannelFreezeReceived(t); | |
| break; | |
| default: | |
| z.onUndefinedMessageReceived(e, JSON.parse(n)) | |
| } | |
| return JSON.parse(n) | |
| }, | |
| q = { | |
| successFunc: function(e) {}, | |
| errorFunc: function(e, n) { | |
| l(e), l(n) | |
| } | |
| }, | |
| z = { | |
| onMessageReceived: function(e) { | |
| l(e) | |
| }, | |
| onSystemMessageReceived: function(e) { | |
| l(e) | |
| }, | |
| onFileMessageReceived: function(e) { | |
| l(e) | |
| }, | |
| onBroadcastMessageReceived: function(e) { | |
| l(e) | |
| }, | |
| onReadReceived: function(e) { | |
| l(e) | |
| }, | |
| onMessagingChannelUpdateReceived: function(e) { | |
| l(e) | |
| }, | |
| onTypeStartReceived: function(e) { | |
| l(e) | |
| }, | |
| onTypeEndReceived: function(e) { | |
| l(e) | |
| }, | |
| onMessageDelivery: function(e) { | |
| l(e) | |
| }, | |
| onBanReceived: function(e) { | |
| l(e) | |
| }, | |
| onChannelFreezeReceived: function(e) { | |
| l(e) | |
| }, | |
| onUndefinedMessageReceived: function(e, n) { | |
| l(e), l(n) | |
| }, | |
| onReconnectFailed: function() {}, | |
| onWebSocket: function(e, n) {}, | |
| onLog: function(e) {} | |
| }, | |
| H = 6, | |
| j = 5, | |
| X = function(t) { | |
| l("=== Start SendBird SDK ==="); | |
| var r = f({}, q, t), | |
| s = "guest_login/", | |
| i = { | |
| guest_id: b.guest_id, | |
| app_id: b.app_id, | |
| nickname: b.user_name, | |
| image_url: b.image_url, | |
| access_token: b.access_token | |
| }; | |
| void 0 != b.gcm_reg_token && "" != b.gcm_reg_token && (i.gcm_reg_token = b.gcm_reg_token), void 0 != b.apns_device_token && "" != b.apns_device_token && (i.apns_device_token = b.apns_device_token), a(k + b.app_id, function() { | |
| n(e(s), i, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? r.errorFunc(m, e.message) : (b.guest_key = e.key, b.remove_apns_token && Ue(b.remove_apns_token), b.remove_gcm_token && xe(b.remove_gcm_token), r.successFunc({})) | |
| }, function(e, n) { | |
| r.errorFunc(e, n) | |
| }) | |
| }, function(e, n) { | |
| r.errorFunc(e, n) | |
| }) | |
| }, | |
| Y = function(t, r) { | |
| l("=== Join Channel ==="); | |
| var s = f({}, q, r), | |
| i = "channel_join/", | |
| a = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| channel_url: t | |
| }, | |
| o = {}; | |
| n(e(i), a, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? s.errorFunc(m, e.message) : (e.isMessaging = !1, f(C, e), o = C, s.successFunc(o)) | |
| }, function(e, n) { | |
| s.errorFunc(e, n) | |
| }) | |
| }, | |
| Z = function(t, r) { | |
| l("=== Leave Channel ==="); | |
| var s = f({}, q, r), | |
| i = "channel_leave", | |
| a = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| channel_url: t | |
| }, | |
| o = {}; | |
| n(e(i), a, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? s.errorFunc(m, e.message) : (o = e, s.successFunc(o)) | |
| }, function(e, n) { | |
| s.errorFunc(e, n) | |
| }) | |
| }, | |
| K = function(t, r) { | |
| l("=== Member List ==="); | |
| var s = f({}, q, r), | |
| i = "member_list/", | |
| a = { | |
| app_id: b.app_id, | |
| channel_url: t | |
| }, | |
| o = {}; | |
| n(e(i), a, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? s.errorFunc(m, e.message) : (o = e, s.successFunc(o)) | |
| }, function(e, n) { | |
| s.errorFunc(e, n) | |
| }) | |
| }, | |
| V = function(t) { | |
| l("=== Channel List ==="), t = f({}, { | |
| limit: 20, | |
| page: 1, | |
| query: "" | |
| }, t); | |
| var r = f({}, q, t), | |
| s = "channel_list/", | |
| i = { | |
| app_id: b.app_id, | |
| page: r.page, | |
| limit: r.limit, | |
| query: r.query | |
| }, | |
| a = {}; | |
| n(e(s), i, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? r.errorFunc(m, e.message) : (a = e, r.successFunc(a)) | |
| }, function(e, n) { | |
| r.errorFunc(e, n) | |
| }) | |
| }, | |
| $ = function(e) { | |
| V(e) | |
| }, | |
| Q = function(e) { | |
| return void 0 != e.last_message && "" != e.last_message && (e.last_message = JSON.parse(e.last_message.substring(4))), e | |
| }, | |
| ee = function(t, r) { | |
| l("=== Join Messaging Channel ==="); | |
| var s = f({}, q, r), | |
| i = "messaging_join/", | |
| a = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| channel_url: t | |
| }, | |
| o = {}; | |
| n(e(i), a, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? s.errorFunc(m, e.message) : (e.channel.isMessaging = !0, f(C, e.channel), o = e, s.successFunc(Q(o))) | |
| }, function(e, n) { | |
| s.errorFunc(e, n) | |
| }) | |
| }, | |
| ne = function(t, r) { | |
| l("=== Start Messaging ==="), r = f({}, { | |
| is_group: !1 | |
| }, r), t = t instanceof Array ? t : new Array(t); | |
| var s = f({}, q, r), | |
| i = "messaging_start/", | |
| a = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| guest_ids: t, | |
| is_group: r.is_group | |
| }, | |
| o = {}; | |
| n(e(i), a, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? s.errorFunc(m, e.message) : (f(C, e.channel), o = e, s.successFunc(Q(o))) | |
| }, function(e, n) { | |
| s.errorFunc(e, n) | |
| }) | |
| }, | |
| te = function(e, n, t) { | |
| if (2 == arguments.length) { | |
| var r = arguments[1].channel_url; | |
| void 0 != r && "" != r || (r = C.channel_url), re(arguments[0], r, arguments[1]) | |
| } else re(e, n, t) | |
| }, | |
| re = function(t, r, s) { | |
| l("=== Invite Messaging ==="), t = t instanceof Array ? t : new Array(t); | |
| var i = f({}, q, s), | |
| a = "messaging_invite/", | |
| o = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| channel_url: r, | |
| guest_ids: t | |
| }, | |
| c = {}; | |
| n(e(a), o, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? i.errorFunc(m, e.message) : (f(C, e.channel), c = e, i.successFunc(Q(c))) | |
| }, function(e, n) { | |
| i.errorFunc(e, n) | |
| }) | |
| }, | |
| se = function(t, r) { | |
| l("=== End Messaging ==="); | |
| var s = f({}, q, r), | |
| i = "messaging_end/", | |
| a = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| channel_url: t | |
| }, | |
| o = {}; | |
| n(e(i), a, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? s.errorFunc(m, e.message) : (f(C, e), o = e, s.successFunc(Q(o))) | |
| }, function(e, n) { | |
| s.errorFunc(e, n) | |
| }) | |
| }, | |
| ie = function(t) { | |
| l("=== Get Messaging Channel List (Deprecated) ==="), t = f({}, { | |
| limit: 9999, | |
| page: 1 | |
| }, t); | |
| var r = f({}, q, t), | |
| s = "messaging_list/", | |
| i = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| page: r.page, | |
| limit: r.limit | |
| }, | |
| a = {}; | |
| n(e(s), i, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? r.errorFunc(m, e.message) : (a = e, a.channels.forEach(function(e, n) { | |
| e = Q(e) | |
| }), r.successFunc(a)) | |
| }, function(e, n) { | |
| r.errorFunc(e, n) | |
| }) | |
| }, | |
| ae = function(e) { | |
| l("=== Get Messaging Channel Pagination List ==="), e = f({}, { | |
| limit: 15, | |
| page: 1, | |
| show_empty: !1 | |
| }, e); | |
| var t = f({}, q, e), | |
| r = "messaging_list/", | |
| i = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| page: t.page, | |
| limit: t.limit, | |
| show_empty: t.show_empty | |
| }, | |
| a = {}; | |
| n(s(r), i, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? t.errorFunc(m, e.message) : (a = e, a.channels.forEach(function(e, n) { | |
| e = Q(e) | |
| }), t.successFunc(a)) | |
| }, function(e, n) { | |
| t.errorFunc(e, n) | |
| }) | |
| }, | |
| oe = function(t, r) { | |
| l("=== Messaging Channel Info ==="); | |
| var s = f({}, q, r), | |
| i = "messaging_info/", | |
| a = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| channel_id: t | |
| }; | |
| n(e(i), a, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? s.errorFunc(m, e.message) : z.onMessagingChannelUpdateReceived(Q(e)) | |
| }, function(e, n) { | |
| s.errorFunc(e, n) | |
| }) | |
| }, | |
| ce = function(t, r) { | |
| l("=== Message Mark As Read ==="); | |
| var s = f({}, q, r), | |
| i = "mark_as_read/", | |
| a = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| channel_url: t | |
| }, | |
| o = {}; | |
| n(e(i), a, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? s.errorFunc(m, e.message) : (o = e, s.successFunc(o)) | |
| }, function(e, n) { | |
| s.errorFunc(e, n) | |
| }) | |
| }, | |
| ue = function(t) { | |
| l("=== Message Load More ==="), t = f({}, { | |
| limit: 20 | |
| }, t); | |
| var r = f({}, q, t), | |
| s = (new Date).getTime(), | |
| i = "message_list", | |
| a = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| channel_url: C.channel_url, | |
| message_ts: 0 == A ? s : A, | |
| prev_limit: r.limit, | |
| next_limit: 0, | |
| include: !1 | |
| }, | |
| o = []; | |
| n(e(i), a, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? r.errorFunc(m, e.message) : (e.messages.forEach(function(e, n) { | |
| var t = JSON.parse(e.substring(4)); | |
| 0 == A ? A = t.ts : A > t.ts && (A = t.ts), o.push(be(e)) | |
| }), r.successFunc({ | |
| messages: o | |
| })) | |
| }, function(e, n) { | |
| r.errorFunc(e, n) | |
| }) | |
| }, | |
| ge = function(t) { | |
| l("=== User List ==="), t = f({}, { | |
| token: "", | |
| page: 1, | |
| limit: 30 | |
| }, t); | |
| var r = f({}, q, t), | |
| s = "user_list/", | |
| i = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| token: r.token, | |
| page: r.page, | |
| limit: r.limit | |
| }; | |
| n(e(s), i, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? r.errorFunc(m, e.message) : r.successFunc(e) | |
| }, function(e, n) { | |
| r.errorFunc(e, n) | |
| }) | |
| }, | |
| pe = function(e, n) { | |
| l("=== Upload File ==="); | |
| var r = f({}, q, n), | |
| s = "upload_file/", | |
| i = '{"app_id": "' + b.app_id + '"}', | |
| a = new FormData; | |
| a.append("meta", i), a.append("file", e); | |
| var o = "", | |
| u = c + "v" + S.replace(/[^(0-9)]/gi, "") + "/" + s, | |
| g = void 0 == r.async ? !0 : r.async, | |
| p = t ? new t : new XMLHttpRequest; | |
| p.open("POST", u, g), p.onload = function() { | |
| if (p.status >= m && p.status < v) { | |
| var n = p.responseText, | |
| t = JSON.parse(n); | |
| t.error ? r.errorFunc(m, t.message) : (o = { | |
| error: !1, | |
| url: t.url | |
| }, Re({ | |
| url: t.url, | |
| name: e.name, | |
| type: e.type, | |
| size: e.size, | |
| custom: "" | |
| }), r.successFunc(o)) | |
| } else r.errorFunc(p.status, p.statusText) | |
| }, p.send(a) | |
| }, | |
| de = function() { | |
| l("=== Typing Start ==="); | |
| var e = (new Date).getTime(); | |
| he(N.TPST, { | |
| channel_id: C.id, | |
| time: e | |
| }), J = e, D = !0 | |
| }, | |
| _e = function() { | |
| l("=== Typing End ==="); | |
| var e = (new Date).getTime(); | |
| he(N.TPEN, { | |
| channel_id: C.id, | |
| time: e | |
| }), J = 0, D = !1 | |
| }, | |
| le = (setInterval(function() { | |
| var e = (new Date).getTime(); | |
| D && e - J > x && _e() | |
| }, x), function(t, r) { | |
| l("=== Delete Message ==="); | |
| var s = f({}, q, r), | |
| i = "message_delete/", | |
| a = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| msg_id: t | |
| }; | |
| n(e(i), a, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? s.errorFunc(m, e.message) : s.successFunc(e) | |
| }, function(e, n) { | |
| s.errorFunc(e, n) | |
| }) | |
| }), | |
| fe = function(e) { | |
| l("=== Web Socket Connect to Server ==="), ke(); | |
| var n = f({}, q, e); | |
| try { | |
| R = new r(u + P + b.app_id + "&key=" + b.guest_key) | |
| } catch (t) { | |
| d.log(t) | |
| } | |
| R.onopen = function(e) { | |
| l("=== Web Socket Connected ==="), z.onWebSocket("open", e), Oe(!0), Te(b.guest_key); | |
| var t = (new Date).getTime(); | |
| if (void 0 === C.id || Fe(C.id, t)) { | |
| var r = {}; | |
| n.successFunc(r) | |
| } else n.errorFunc(v, "WebSocket is not connected yet.") | |
| }, R.onmessage = function(e) { | |
| I = (new Date).getTime(); | |
| for (var n = e.data.split("\n"), t = 0; t < n.length; t++) | |
| if (0 != n[t].trim().length) { | |
| var r = n[t].substring(0, 4), | |
| s = n[t].substring(4); | |
| if (0 !== r.trim().length || 0 !== s.trim().length) | |
| if (r == N.MCUP) { | |
| var i = JSON.parse(s); | |
| oe(i.channel_id) | |
| } else W(r, s) | |
| } | |
| }, R.onerror = function(e) { | |
| l("=== Web Socket onerror ==="), z.onWebSocket("error", e), l(e) | |
| }, R.onclose = function(e) { | |
| l("=== Web Socket onclose ==="), z.onWebSocket("close", e), l(e), p || ve(), Oe(!1) | |
| } | |
| }, | |
| me = function(e) { | |
| "undefined" == typeof e || 1 == e ? (l("=== Web Socket Explicit Disconnect ==="), p = !0, Oe(!1), Se()) : (l("=== Web Socket Disconnect ==="), p = e, ke()) | |
| }, | |
| ve = function() { | |
| p !== !0 && (null == B ? M > O ? (ke(), l("=== Start Reconnect (After " + (F / 1e3).toString() + " Seconds) ==="), B = setTimeout(function() { | |
| O++, F *= 2, fe(), B = null, l("=== Reconnect done: " + O.toString() + " ===") | |
| }, F)) : (z.onReconnectFailed(), l("=== Stop Reconnect ===")) : l("=== Reconnect is in progress. (skip) ===")) | |
| }, | |
| Se = function() { | |
| l("=== clearConnection ==="), R && ke(), C = {}, A = 0; | |
| try { | |
| clearInterval(E), l("=== clearInterval: pingHandler ===") | |
| } catch (e) { | |
| l("=== clearInterval fail: pingHandler ===") | |
| } | |
| E = null; | |
| try { | |
| clearTimeout(B), l("=== clearTimeout: retryHandler ===") | |
| } catch (e) { | |
| l("=== clearTimeout fail: retryHandler ===") | |
| } | |
| B = null, L = 0 | |
| }, | |
| ke = function() { | |
| R && (R.close(), R.onmessage = function(e) {}, R.onopen = function(e) {}, R.onerror = function(e) {}, R.onclose = function(e) {}, R = null), A = 0 | |
| }, | |
| ye = function() { | |
| try { | |
| return R ? R.readyState : r.CLOSED | |
| } catch (e) { | |
| return r.CLOSED | |
| } | |
| }, | |
| he = function(e, n) { | |
| var t = e + JSON.stringify(n) + "\n"; | |
| try { | |
| if (!R) return !1; | |
| if (1 != R.readyState) return !1; | |
| R.send(t) | |
| } catch (r) { | |
| return l(r), !1 | |
| } | |
| return !0 | |
| }, | |
| Te = function(e) { | |
| he(N.LOGI, { | |
| key: e | |
| }) | |
| }, | |
| Fe = function(e, n) { | |
| return he(N.JOIN, { | |
| channel_id: e, | |
| last_ts: n | |
| }) | |
| }, | |
| Me = function() { | |
| var e = (new Date).getTime(); | |
| L = e, he(N.PING, { | |
| id: e | |
| }) | |
| }, | |
| Oe = function(e) { | |
| null != E && (clearInterval(E), E = null), e ? (l("=== Start Pinger ==="), E = setInterval(function() { | |
| var e = (new Date).getTime(), | |
| n = e - I, | |
| t = parseInt(n / 1e3); | |
| t > 0 && t % 15 == 0 && (l(N.PING), Me(), clearTimeout(G), G = setTimeout(function() { | |
| var e = (new Date).getTime(), | |
| n = e - I, | |
| t = parseInt(n / 1e3); | |
| t >= 20 && (l("=== PING Timeout, Try Reconnect ==="), Oe(!1), ve()) | |
| }, 6e3)) | |
| }, 1e3)) : l("=== Stop Pinger ===") | |
| }, | |
| Pe = function(e, n) { | |
| "string" != typeof e && (e = e.toString()), n = n || "", "string" != typeof n && (n = n.toString()); | |
| var t = he(N.MESG, { | |
| channel_id: C.id, | |
| message: e, | |
| data: "", | |
| tid: n | |
| }); | |
| z.onMessageDelivery({ | |
| sent: t, | |
| message: e, | |
| data: "", | |
| id: n | |
| }), t && C.isMessaging && setTimeout(function() { | |
| _e() | |
| }, 100) | |
| }, | |
| we = function(e, n, t) { | |
| "string" != typeof e && (e = e.toString()), t = t || "", "string" != typeof t && (t = t.toString()); | |
| var r = he(N.MESG, { | |
| channel_id: C.id, | |
| message: e, | |
| data: n, | |
| tid: t | |
| }); | |
| z.onMessageDelivery({ | |
| sent: r, | |
| message: e, | |
| data: n, | |
| tid: t | |
| }), r && C.isMessaging && setTimeout(function() { | |
| _e() | |
| }, 100) | |
| }, | |
| Re = function(e) { | |
| he(N.FILE, { | |
| channel_id: C.id, | |
| name: e.name, | |
| url: e.url, | |
| type: e.type, | |
| size: e.size, | |
| custom: e.custom | |
| }) | |
| }, | |
| Ne = function(e) { | |
| g = e | |
| }, | |
| be = function(e) { | |
| var n = e.substring(0, 4), | |
| t = JSON.parse(e.substring(4)); | |
| return { | |
| cmd: n, | |
| payload: t | |
| } | |
| }, | |
| Ce = function(e) { | |
| return e == N.MESG | |
| }, | |
| Ie = function(e) { | |
| return e == N.FILE | |
| }, | |
| Ae = function(e) { | |
| var n = e.url.split("."), | |
| t = n[n.length - 1]; | |
| return "png" == t || "jpeg" == t || "jpg" == t || "gif" == t || "bmp" == t ? !0 : e.type.indexOf("image") >= 0 | |
| }, | |
| Ee = function(e) { | |
| return e == H | |
| }, | |
| Ge = function(e) { | |
| return e == j | |
| }, | |
| Be = function(e) { | |
| e({ | |
| channel_url: C.channel_url, | |
| cover_img_url: C.cover_img_url, | |
| member_count: C.member_count, | |
| name: C.name, | |
| isMessaging: C.isMessaging, | |
| max_length_message: C.max_length_message, | |
| freeze: C.freeze | |
| }) | |
| }, | |
| Le = function(e) { | |
| e({ | |
| guest_id: b.guest_id, | |
| image_url: b.image_url, | |
| nickname: b.user_name | |
| }) | |
| }, | |
| De = function(t, r) { | |
| if (b.guest_key) { | |
| l("=== Start registerGCMToken ==="); | |
| var s = "register_push_token/", | |
| i = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| gcm_reg_token: t | |
| }, | |
| a = f({}, q, r); | |
| n(e(s), i, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? (l("=== Fail registerGCMToken ==="), b.gcm_reg_token = t, a.errorFunc(m, e.message)) : (l("=== Success registerGCMToken ==="), a.successFunc(e)) | |
| }, function(e, n) { | |
| b.gcm_reg_token = t, a.errorFunc(e, n) | |
| }) | |
| } else b.gcm_reg_token = t | |
| }, | |
| Je = function(t, r) { | |
| if (b.guest_key) { | |
| l("=== Start registerAPNSToken ==="); | |
| var s = "register_push_token/", | |
| i = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| apns_device_token: t | |
| }, | |
| a = f({}, q, r); | |
| n(e(s), i, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? (l("=== Fail registerAPNSToken ==="), b.apns_device_token = t, a.errorFunc(m, e.message)) : (l("=== Success registerAPNSToken ==="), a.successFunc(e)) | |
| }, function(e, n) { | |
| b.apns_device_token = t, a.errorFunc(e, n) | |
| }) | |
| } else b.apns_device_token = t | |
| }, | |
| xe = function(t, r) { | |
| if (b.guest_key) { | |
| l("=== Start unregisterGCMToken ==="); | |
| var s = "unregister_push_token/", | |
| i = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| gcm_reg_token: t | |
| }, | |
| a = f({}, q, r); | |
| n(e(s), i, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? (l("=== Fail unregisterGCMToken ==="), b.remove_gcm_token = t, a.errorFunc(m, e.message)) : (l("=== Success unregisterGCMToken ==="), b.remove_gcm_token = "", a.successFunc(e)) | |
| }, function(e, n) { | |
| l("=== Fail unregisterGCMToken ==="), b.remove_gcm_token = t, a.errorFunc(e, n) | |
| }) | |
| } else b.remove_gcm_token = t | |
| }, | |
| Ue = function(t, r) { | |
| if (b.guest_key) { | |
| l("=== Start unregisterAPNSToken ==="); | |
| var s = "unregister_push_token/", | |
| i = { | |
| app_id: b.app_id, | |
| session_key: b.guest_key, | |
| apns_device_token: t | |
| }, | |
| a = f({}, q, r); | |
| n(e(s), i, "POST", { | |
| SendBird: w + b.app_id | |
| }, function(e) { | |
| e.error ? (l("=== Fail unregisterAPNSToken ==="), b.remove_apns_token = t, a.errorFunc(m, e.message)) : (b.remove_apns_token = "", a.successFunc(e)) | |
| }, function(e, n) { | |
| l("=== Fail unregisterAPNSToken ==="), b.remove_apns_token = t, a.errorFunc(e, n) | |
| }) | |
| } else b.remove_apns_token = t | |
| }, | |
| We = function() { | |
| return !!C.freeze | |
| }, | |
| qe = "[version] " + y, | |
| ze = function(e) { | |
| A = "string" == typeof e ? parseInt(e) : e | |
| }; | |
| return { | |
| version: qe, | |
| events: z, | |
| joinChannel: Y, | |
| leaveChannel: Z, | |
| getMemberList: K, | |
| getChannelSearch: V, | |
| getChannelList: $, | |
| joinMessagingChannel: ee, | |
| startMessaging: ne, | |
| inviteMessaging: te, | |
| endMessaging: se, | |
| getMessagingChannelList: ie, | |
| getMessagingChannelListPagination: ae, | |
| markAsRead: ce, | |
| getMessageLoadMore: ue, | |
| getUserList: ge, | |
| sendFile: pe, | |
| typeStart: de, | |
| typeEnd: _e, | |
| deleteMessage: le, | |
| connect: fe, | |
| disconnect: me, | |
| message: Pe, | |
| messageWithData: we, | |
| sendFileURL: Re, | |
| setDebugMessage: Ne, | |
| isMessage: Ce, | |
| isFileMessage: Ie, | |
| hasImage: Ae, | |
| isGroupMessaging: Ee, | |
| isGroupMessagingChannel: Ee, | |
| isMessagingChannel: Ge, | |
| getChannelInfo: Be, | |
| getUserInfo: Le, | |
| getConnectionState: ye, | |
| registerGCMToken: De, | |
| registerAPNSToken: Je, | |
| unregisterGCMToken: xe, | |
| unregisterAPNSToken: Ue, | |
| isFreezeChannel: We, | |
| init: o, | |
| setMinMessageTs: ze | |
| } | |
| }; | |
| return S | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment