Cocos-JS 网络通讯读写消息以及加载proto文件

Cocos-JS 网络通讯读写消息以及加载proto文件,第1张

概述/** * Created by Lovell on 16/6/20. *//** * html decode * @param str * @returns {string} */pg.htmlDecodeByRegExp = function (str) { var s = ""; if (str.length == 0) return ""; s =
/** * Created by lovell on 16/6/20. *//** * HTML decode * @param str * @returns {string} */pg.HTMLDecodeByRegExp = function (str) {    var s = "";    if (str.length == 0) return "";    s = str.replace(/&amp;/g,"&");    s = s.replace(/&lt;/g,"<");    s = s.replace(/&gt;/g,">");    s = s.replace(/&nbsp;/g," ");    s = s.replace(/&#39;/g,"\'");    s = s.replace(/&quot;&quot;&quot;/g,"\"");    return s;};/** * safe retain * @param obj * @constructor */pg.SAFERETAIN = function (obj) {    if (obj && obj.retain) {        obj.retain();    }};/** * safe release * @param obj * @constructor */pg.SAFERELEASE = function (obj) {    if (obj && obj.release) {        obj.release();    }};/** * load proto file,return contents * @param path * @param str * @returns {!ProtoBuf.Builder.Message|!Object.<string,*>} */pg.loadProto = function (path,str) {    if (typeof dcodeIO === 'undefined' || !dcodeIO.ProtoBuf) {        throw (new Error("ProtoBuf.Js is not present. Plese see Please see www/index.HTML for manual setup instructions."))    }    var ProtoBuf = dcodeIO.ProtoBuf;    var Contents = ProtoBuf.loadProtofile(path).build(str);    return Contents ? Contents : null;};/** * create proto * @param path * @param str * @returns {*} */pg.createProto = function (path,str) {    var Proto = new pg.loadProto(path,str);    var data = new Proto();    return data ? data : null;};/** * read msg * @param msg * @returns {Uint8Array} */pg.readMsg = function (msg) {    if (!msg) {        return null;    }    var binary = new Uint8Array(msg);    var message = new Uint8Array(binary.byteLength - 4);    for (var i = 0; i < binary.byteLength - 4; i++) {        message[i] = binary[4 + i];    }    return message;};/** * write msg * @param type * @param msg * @returns {Uint8Array} */pg.writeMsg = function (type,msg) {    if (!type || !msg) {        return null;    }    var binary = msg.toArrayBuffer();    var byteLength = binary.byteLength + 4;    msg = new ArrayBuffer(4 + byteLength);    var vIEw = new Uint8Array(msg);    var len = 2;    var tmp = new Uint8Array(len);    for (var i = 0; i < len; i++) {        tmp[i] = 0xff & (byteLength >> (8 * (len - i - 1)));        vIEw[i] = tmp[i];    }    tmp = new Uint8Array(len);    for (var i = 0; i < len; i++) {        tmp[i] = 0xff & (type >> (8 * (len - i - 1)));        vIEw[i + 2] = tmp[i];    }    tmp = new Uint8Array(binary);    for (var i = 0; i < byteLength; i++) {        vIEw[i + 4] = tmp[i];    }    return msg;};/** * get msg type * @param msg * @returns {number} */pg.getMsgType = function (msg) {    if (!msg) {        return 0;    }    var binary = new Uint8Array(msg);    var type = 0;    for (var i = 0; i < 2; i++) {        type |= binary[i + 2] << (8 * (2 - i - 1));    }    return type;};
总结

以上是内存溢出为你收集整理的Cocos-JS 网络通讯读写消息以及加载proto文件全部内容,希望文章能够帮你解决Cocos-JS 网络通讯读写消息以及加载proto文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1085676.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存