var chatclient = require("chatclient"); const BaseNet = require("../BaseNet"); var rsp = function () { this.msgpool = []; this.connecting = false; this.time = 0; this.time2 = 0; this.functionarr = {}; this.deadtime = 35; this.hearttime = 10; this.initResponse = function () { for (var k in this.fcb) { var k2 = this.m_chat.s2cMsgfcb["_" + k]; this.functionarr[k2] = this.fcb[k]; } this.msgfcb = {}; for (var k in this.m_chat.s2cMsgfcb) { var vk = k.slice(1, k.length); this.msgfcb[this.m_chat.s2cMsgfcb[k]] = vk; } this.m_chat.connectNet(); }; this.netResponse = function (res) { console.log(res.eventtype); if (res.eventtype == "connect") { this.connecting = true; this.loginparma.proto_version = this.pversion; this.loginparma.zid = BaseNet.getCurrentZid(); this.sendmsg("CMLogin", this.loginparma); } else if (res.eventtype == "close" || res.eventtype == "reconnect") { this.connecting = false; this.netclosecb(); } }; this.recvMsg = function (mid, msg) { this.time2 = 0; if (mid == 101) { return; } if (this.showdebug) { } if (this.functionarr[mid]) { this.functionarr[mid](msg); } else { cc.Notifier.emit(this.msgfcb[mid], msg); } }; this.initengine = function (offical, showdebug) { this.m_chat = new chatclient(); this.m_chat.init(offical, this); this.showdebug = showdebug; }; this.sendmsg = function (k, p) { this.msgpool.push({ k: "_" + k, p: p }); if (this.showdebug) { // console.log(k) if (p) { // console.log(p) } } }; this.heart = function () { this.m_chat.sengMsg("_CMPing"); }; this.update = function (dt) { if (this.connecting) { if (this.msgpool.length > 0) { var msg = this.msgpool.shift(); this.m_chat.sengMsg(msg.k, msg.p); } this.time += dt; if (this.time > this.hearttime) { this.time = 0; this.heart(); } // this.time2+=dt // if(this.time2>this.deadtime){ // this.m_chat.reconnectNet() // this.time2 = 0 // } } }; this.bindrecvMsg = function (v) { this.fcb = v; }; this.bindclose = function (v) { this.netclosecb = v; }; this.close = function () { this.m_chat.disconnect(); }; }; module.exports = rsp;