//基于 Web IM SDK 封装的聊天室中间层示例 ;(function (global, factory, namespace) { if(typeof exports === 'object' && typeof module !== 'undefined'){ module.exports = factory(); }else if(typeof define === 'function' && define.amd){ define(factory); }else{ global[namespace] = factory(); } })(window, function(){ "use strict"; function initApp(appInfo, callbacks, modules){ window.RongIM = window.RongIM || {}; //缓存消息回调队列 window.onMessageList = window.onMessageList || []; window.onMessageList.push(callbacks.onMessage); //缓存状态队列 window.onConnectList = window.onConnectList || []; window.onConnectList.push(callbacks.onConnected); modules = modules || {}; var RongIMLib = modules.RongIMLib || window.RongIMLib; var RongIMClient = RongIMLib.RongIMClient; if(RongIM.ready){ callbacks.onReady && callbacks.onReady(RongIM.instance); callbacks.onConnected && callbacks.onConnected(RongIM.instance, RongIM.userInfo); return; }else{ var appKey = appInfo.appKey; var token = appInfo.token; var navi = appInfo.navi || ""; var protobuf = modules.protobuf || null; var config = {}; //私有云 if(navi !== ""){ config.navi = navi; } //support protobuf url + module if(protobuf != null){ config.protobuf = protobuf; }; RongIMLib.RongIMClient.init(appKey,null,config); //开始链接 RongIMClient.connect(token, { onSuccess: function(userId) { RongIM.ready = true; RongIM.userInfo = { data : {userId: userId}, status : "ok", info : "链接成功" }; for(var i = 0, len = onConnectList.length; i