meoser
Version:
meos protocol engine
67 lines (60 loc) • 1.51 kB
JavaScript
import {
WORKING_MODE
} from './setting';
class Transport {
/**
* Create a transporter.
*/
constructor() {
this.isOnlineInited = false;
this.sender_ = () => {
console.warn('Please make sure of setting the sender')
};
this.onlineReceiver_ = (buffData) => {};
this.currentMode = WORKING_MODE[0]; // 默认离线
}
/**
*
* @param {Function} fn the sender
* @return {Undefined}
*/
set sender(fn) {
if (typeof fn === 'function') {
this.sender_ = fn;
}
}
get send() {
return this.sender_;
}
set onlineReceiver(fn) {
if (typeof fn === 'function') {
this.onlineReceiver_ = fn;
}
}
get receiveOnline() {
return this.onlineReceiver_;
}
/**
* 检查是否在线
* @return {[type]} [description]
*/
checkOnline() {
return this.currentMode === WORKING_MODE[1];
}
initOnlineMode(engine) {
if (engine && !this.isOnlineInited) {
this.isOnlineInited = true;
let sender = this.send;
let driver = {
send: sender,
onReceived: (parse, driver) => {
this.onlineReceiver = (buff) => {
parse.checksumRcvbuf(buff, driver);
};
}
};
engine.setDriver(driver);
}
}
}
export default new Transport();