UNPKG

pixelstream-cn

Version:

基于虚幻引擎的像素流平台

68 lines (59 loc) 1.86 kB
function randomString(length) { var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; var result = ''; for (var i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; return result; } import callback from "./../callback.js"; import bufferUtil from "./../util/buffer.js"; import messageType from "./messageType.js"; import baseStructure from "./../structure/base.js"; export default class base { constructor(action,data,callback){ if(!action){ return ; } this.messageType = messageType.UIInteraction; this.$data=null; this.callback=callback ? true : false; this.callback=true; this.$action=action; if(data instanceof baseStructure){ this.$data = data.data; }else{ this.$data=data; } } get buffer(){ if(!this.data){ if(this.messageId){ this.$data.message="64684311684646"; } this.data=this.getData(); } return this.data.buffer; } getData() { let descriptor={ action:this.$action, data:this.$data, }; if(this.callback){ descriptor.message=this.setMessage(); } return this.serialize(descriptor); } serialize(descriptor){ let descriptorAsString = JSON.stringify(descriptor) return bufferUtil.toBuffer(descriptorAsString,this.messageType); } setMessage(){ let message = randomString(32); this.promise = new Promise((resolve,reject)=>{ callback.setFunction(message,(response)=>{ resolve(response); }); }) return message; } }