UNPKG

meoser

Version:

meos protocol engine

67 lines (60 loc) 1.51 kB
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();