首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

微信小游戏protobuf.js快速解决办法

使用预编译js 将proto文件转换为js文件使用,此方法支持protobufjs5.x~6.x 二. protobufjs5.x 动态加载方案 let ProtoBuf = require('protobufjs...2.异步加载proto文件 之后加载proto文件需要使用异步方式 //创建一个共用的builder对象let builder = ProtoBuf.newBuilder(); ...ProtoBuf.loadProtoFile...); protobuf.util.fetch = cc.loader.load.bind(cc.loader); protobufjs 6.x动态加载可以解决加载问题,但protobufjs 6.x使用了...微信不支持XMLHTTPRequest API,而Protobuf中正好使用了此API,关键思路是使用cc.loader代替XMLHTTPRequest。...同时需要注意,微信开发者工具的运行环境中,在使用cc.loader.load、cc.loader.loadRes等函数时会经常出现回调不响应的情况(切换场景也不生效),需要全部关闭微信开发者工具,或清空缓存

2K30

当creator遇上protobufjs|青春升级记

我曾在公众号上发过一篇《微信小游戏protobuf.js快速解决办法》,在这里给大家说声不好意思,这篇文章中的proto加载方案存在缺陷,具体问题如下图所示: ?...一、protobuf.js加载源码分析 还是从protobuf.js源码入手,我增加了一些注释,方便理解: ProtoBuf.loadProtoFile = function(filename, callback...微信小游戏环境我的理解是:阉割+定制过的浏览器,它没有提供XMLHttpRequest API,这是导致protobuf.js失败的原因。...只需要给出完整路径即可,但在浏览器上使用需要注意跨域问题。 加载当前项目下resources目录下的资源,使用cc.loader.loadRes更为简单。...四、结束 pbkiller的内核是protobuf.js,我所做的工作只是将protobuf.js适配到Cocos-JSB和微信小游戏环境,让其能正常工作。

1.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

Protocol Buffers 在前端项目中的使用

传送门,简单的说,他和json、xml等类似,是一种数据结构,使用场景主要是作为一种数据传输格式来使用。...经过调研,目前前端使用pb主要有两种方式,一个是google官方推出的protobuf for js,另一个是开源社区的protobuf.js。...然后上文中的object对象就可以正常使用了。 protobuf.js的massage类型对象还有很多方法,可以去文档里查看。...好,到这里,采用protobuf.js方案的ajax已经能够成功使用pb流了,接下来我们再试一下google-protobuf ajax不变 // 先使用protoc 根据 share.proto 生成...所以很尴尬,能上传数据,但是接收到的数据无法解析,最终我放弃了使用google官方的库,选择了protobuf.js 总结 这次采坑之路,足足花了我1个星期时间,英语本来就差的我,啃起文档来还是挺吃力的

6.4K50

在NodeJS中玩转Protocol Buffer

本文作者:IMWeb link 原文出处:IMWeb社区 未经同意,禁止转载 这篇文章的代码都是基于Protobuf.js 4.x的API写的,已经跟最新的Protobuf.js 6.x不兼容了...为什么说使用使用类似protobuf的二进制协议通信更好呢? 二进制协议对于电脑来说更容易解析,在解析速度上是http这样的文本协议不可比拟的。...但由于web前端的存在,后台同学往往需要特地开发维护一套http接口专供我们使用,如果web也能使用二进制协议,可以节省许多后台开发的成本。...根据star数和文档完善程度两方面综合考虑,我们决定选择protobuf.js一个栗子 ? 我打算使用 Protobuf 和NodeJS开发一个十分简单的例子程序。 该程序由两部分组成。...编译 .proto 文件 我们可以使用protobuf.js提供的命令行工具来编译 .proto 文件 用法: # pbjs [options] [> outFile] 我们来看看

3K10

在NodeJS中玩转Protocol Buffer

本文作者:IMWeb link 原文出处:IMWeb社区 未经同意,禁止转载 这篇文章的代码都是基于Protobuf.js 4.x的API写的,已经跟最新的Protobuf.js 6.x不兼容了...为什么说使用使用类似protobuf的二进制协议通信更好呢? 二进制协议对于电脑来说更容易解析,在解析速度上是http这样的文本协议不可比拟的。...但由于web前端的存在,后台同学往往需要特地开发维护一套http接口专供我们使用,如果web也能使用二进制协议,可以节省许多后台开发的成本。...根据star数和文档完善程度两方面综合考虑,我们决定选择protobuf.js一个栗子 ? 我打算使用 Protobuf 和NodeJS开发一个十分简单的例子程序。 该程序由两部分组成。...编译 .proto 文件 我们可以使用protobuf.js提供的命令行工具来编译 .proto 文件 用法: # pbjs [options] [> outFile] 我们来看看

3.6K90

安利贴:如何使用protobuf

传输完成后,如果需要重新将这些数据,接收端还需要使用使用 schema 将获得到的二进制数据解码。...相对于JSON来说,编码解码的步骤比较繁琐,但是,protobuf 比 JSON 快 https://github.com/dcodeIO/protobuf.js/blob/master/README.md...无论是编码解码还是结合的过程( protobuf 从对象编码为二进制,从二进制数据解码为对象 JSON 通过JSON.stringify从对象编码为字符串,JSON 通过JSON.parse从字符串解为对象) protobuf.js...但是,介于JSON的简单性和通用性,在多数场景下我们还是使用JSON 总的来说,PB有以下几个特点 扩展性好,和语言平台无关,只要写好通用的schema文件,支持多种语言的编解码 传输效率相对于JSON...作用是,如果一个message中,某一项有多种不同类型的值就使用oneof 取其一。

1.8K10

在 NodeJS 中玩转 Protocol Buffer

为什么说使用使用类似protobuf的二进制协议通信更好呢? 二进制协议对于电脑来说更容易解析,在解析速度上是http这样的文本协议不可比拟的。...但由于web前端的存在,后台同学往往需要特地开发维护一套http接口专供我们使用,如果web也能使用二进制协议,可以节省许多后台开发的成本。...在NodeJS中实践Protocol Buffer协议 选择支持protobuf的NodeJS第三方模块 protobuf.js Google protobuf js protocol-buffers...根据star数和文档完善程度两方面综合考虑,我们决定选择protobuf.js。...编译 .proto 文件 我们可以使用protobuf.js提供的命令行工具来编译 .proto 文件 用法: # pbjs [options] [> outFile] 我们来看看

5.2K11

IM通讯协议专题学习(七):手把手教你如何在NodeJS中从零使用Protobuf

为什么说使用使用类似protobuf的二进制协议通信更好呢?...但由于web前端的存在,后台同学往往需要特地开发维护一套http接口专供我们使用,如果web也能使用二进制协议,可以节省许多后台开发的成本。...5、选择支持protobuf的NodeJS第三方模块当前在Github上比较热门的支持protobuf的NodeJS第三方模块有如下3个:根据star数和文档完善程度两方面综合考虑,我们决定选择protobuf.js...6、使用 Protobuf 和NodeJS开发一个简单的例子6.1 概述我打算使用 Protobuf 和NodeJS开发一个十分简单的例子程序。...6.3 编译 .proto 文件我们可以使用protobuf.js提供的命令行工具来编译 .proto 文件。

1.2K30

Composer 使用使用详解

可以使用 composer --version 命令查看,如下图: ?...该文件主要是管理包版本使用的,当我们在使用composer update命令时,composer会自动根据composer.json的包版本依赖,生成对应的composer.lock文件,当我们下次在执行...Composer版本约束 在我们使用composer安装包时,不得不考虑的就是一个版本问题,因为不同的版本,存在兼容性问题,因此我们在使用该工具安装包时需要特别的注意包版本,如果使用不当很容易导致项目因为包版本问题瘫痪...你可以定义多个范围,使用空格或者逗号 , 表示逻辑上的与,使用双竖线 || 表示逻辑上的或。其中与的优先级会大于或。...,file.psr-0逐渐的被抛弃了,由于一些老项目还在使用该规则,因此部分项目仍在使用

3.4K30
领券