thinkraz-api-sdk
Version:
橡芮科技API开发包
53 lines (51 loc) • 1.74 kB
JavaScript
/**
* @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);
});
};