node version_generator.js -v 1.0.0 -u http://your-server-address/tutorial-hot-update/remote-assets/ -s native/package/ -d assets/
//捕获异常
if (cc.sys.isNative) {
let __handler
if (window['__errorHandler']) {
__handler = window['__errorHandler']
}
window['__errorHandler'] = function (...args) {
my.log('游戏报错,原生系统')
handleError(...args)
if (__handler) {
__handler(...args)
}
}
}
if (cc.sys.isBrowser) {
let __handler;
if (window.onerror) {
__handler = window.onerror
}
window.onerror = function (...args) {
my.log('游戏报错,浏览器')
handleError(...args)
if (__handler) {
__handler(...args)
}
}
}
// 创建一个msg.length * 2 + 2的大小的ArrayBuffer
// 字符串转为ArrayBuffer对象,参数为字符串; var buf = new ArrayBuffer(str.length*2); 每个字符占用2个字节
var buffer = new ArrayBuffer(msg.length * 2 + 2);
// 创建一个指向b的Int16视图,开始于字节0,长度为2
var v1 = new Int16Array(buffer, 0, 2);
// 将类型化数组的set方法用于复制数组,也就是将一段内容完全复制到另一段内存
// 将msgType复制到v1中
//*******将消息头(协议)放到了开头
v1.set(msgType);
// 获取protobufMsg的字节大小
var pbstr = protobufClass.encode(protobufMsg).finish();
// 创建一个指向b的Uint8视图,开始于字节2
var v2 = new Uint8Array(buffer, 2);
// 将pbstr复制到v2中
//*******将消息结构体内容(协议)放到了剩余位置
v2.set(pbstr);
// 发送消息buffer
this.__socket.send(buffer);