Files
2026-05-23 22:10:14 +08:00

119 lines
1.9 KiB
JavaScript

/*******************************************************************************
*
* 埋点服务
*
*
*
* 2020.08.31
******************************************************************************/
const MOD = require( "nx.mod" );
const TDefine = require( "trace.define" );
const TTT = TDefine.TraceType;
const TraceManager = cc.Class( {
extends: MOD,
name: "TraceManager",
// 初始化
initialize: function( _args ) {
// USPER
this._super( _args );
// 队列
this.router = "";
this.queues = [];
this.sid = "";
this.rid = 0;
// 访问接口(设置)
nx.mTrace = this;
return true;
},
// 销毁
uninitialize: function() {
// 访问接口(关闭)
nx.mTrace = null;
// USPER
return this._super();
},
// 设置路由
setRouter: function( _url ) {
this.router = _url;
},
// 设置角色信息
setRole: function( _sid, _rid ) {
this.sid = _sid;
this.rid = _rid;
},
// 埋点
trace: function( _type, _p1, _p2, _cb, _reset = false ) {
nx.debug( `$Trace:fire:${ _type }` );
if( _reset ) {
this.queues = [];
}
// 无效类型
if( !nx.dt.numPositive( _type, false ) ) {
nx.error( `$Trace:无效埋点!` + _type );
nx.dt.fnInvoke( _cb, false );
return;
}
// 过滤
// if( _type < TTT.Newbee ) {
// if( nx.bridge && nx.bridge.role ) {
// let vo = nx.bridge.role.getRoleVo();
// if( vo && vo.lev > TDefine.NewbeeLevel ) {
// return;
// }
// }
// }
let args = {
sid: this.sid,
rid: this.rid,
dot_type: _type.toString(),
p1: ( "" + _p1 ) || "",
p2: ( "" + _p2 ) || "",
};
this.queues.push( {
args: args,
cb: _cb,
} );
this.nextCommit();
},
// 上传下一个
nextCommit: function() {
if( this.queues.length == 0 ) {
return;
}
let task = this.queues.shift();
if( task ) {
nx.web.post( this.router, task.args );
}
// 下一个
this.nextCommit();
},
} );
// 模块导出
module.exports = TraceManager;