UNPKG

thinkraz-api-sdk

Version:

橡芮科技API开发包

53 lines (51 loc) 1.74 kB
/** * @param {{appid:{string},channel:{string},key:{string}}} configObj * @param {object} events */ var trSocket = function (configObj, events) { const imServerAddr = 'http://im.thinkraz.com'; const socket = io(imServerAddr); if (!configObj) configObj = {}; if (!events) events = {}; if (!events.ready) { events.ready = function () { } } if (!events.disconnect) { events.disconnect = function (reason) { console.log('Disconnect from IM server:' + reason); } } if (!events.error) { events.error = function (err) { console.log('Socket connection error:' + err.message); } } socket .on('connect', function () { socket.emit('authenticate', { appid: configObj.appid, channel: configObj.channel, key: configObj.key ? configObj.key : undefined }); socket.on('ready', function () { for (var evtName in events) { if (evtName !== 'ready' && evtName !== 'disconnect' && evtName !== 'error') socket.on(evtName, events[evtName]); } if (events.ready) events.ready(); }); }) .on('disconnect', function (reason) { for (var evtName in events) { socket.off(evtName); } if (events.disconnect) events.disconnect(reason); }) .on('error', function (err) { for (var evtName in events) { socket.off(evtName); } if (events.error) events.error(err); }); };