[]分享:Laya开发TS项目使用pomelo客户端SDK(pomelo-jsclient-websocket)
理论上来说,pomelo-jsclient-websocket是js,ts作为js的超集,应该直接引用一下脚本就应该无压力兼容的,结果实际操作中是磕磕绊绊,遇到了一些问题,现在总算解决了,分享一下,遇到的一些坑和解决的办法。
pomelo的客户端提供的API其实很简单,而且官方的教程也算是一步一步的指导安装使用,也没有太复杂的操作,按照官方的说法
我们应该只需要引用编译后的build.js就可以使用pomelo的调用了,结果实际引用build.js之后发现还是调用不了、报错。(本人是直接转到TS的,是个js的小白,卡在这里也是百思不得其解。)于是,反复的翻看教程,看demo,后来意识到问题应该就是出在component这里,仔细研究了一下demo里客户端的代码和.json的配置文件,特别是component.json文件,弄清楚了component打包时各模块之间的依赖关系,所以直接只引用build.js文件应该是不可行的,至于如何通过build.js和json配置中各子文件的依赖关系在laya中直接引用,我也没有实验出来,所以我只能换个方法来做。
通过分析component的配置文件,发现客户端的SDK主要有四个文件,我就直接在index.html里分别引用了这四个文件,要注意一下它们之间的依赖关系和引用顺序
var EventEmitter = window.EventEmitter;
修改为
var EventEmitter = window.Emitter;
不然可能会遇到EventEmitter未定义的报错。
最后,关于.d.ts文件,这只是代码提示的作用,没有也可以调用,如果为了编写方便和代码提示可以自己手动写一下,API也就几个函数,自行扩展另说,拿我自己的先抛个砖
pomelo的客户端提供的API其实很简单,而且官方的教程也算是一步一步的指导安装使用,也没有太复杂的操作,按照官方的说法
对于使用websocket的客户端SDK来说,使用了component进行管理,因此只需要配置一个component.json文件,里面配置相应的依赖,然后运行
我们应该只需要引用编译后的build.js就可以使用pomelo的调用了,结果实际引用build.js之后发现还是调用不了、报错。(本人是直接转到TS的,是个js的小白,卡在这里也是百思不得其解。)于是,反复的翻看教程,看demo,后来意识到问题应该就是出在component这里,仔细研究了一下demo里客户端的代码和.json的配置文件,特别是component.json文件,弄清楚了component打包时各模块之间的依赖关系,所以直接只引用build.js文件应该是不可行的,至于如何通过build.js和json配置中各子文件的依赖关系在laya中直接引用,我也没有实验出来,所以我只能换个方法来做。
通过分析component的配置文件,发现客户端的SDK主要有四个文件,我就直接在index.html里分别引用了这四个文件,要注意一下它们之间的依赖关系和引用顺序
<script type="text/javascript" src="libs/pomelo/index.js"></script>另外,pomelo-client.js里的
<script type="text/javascript" src="libs/pomelo/protocol.js"></script>
<script type="text/javascript" src="libs/pomelo/protobuf.js"></script>
<script type="text/javascript" src="libs/pomelo/pomelo-client.js"></script>
var EventEmitter = window.EventEmitter;
修改为
var EventEmitter = window.Emitter;
不然可能会遇到EventEmitter未定义的报错。
最后,关于.d.ts文件,这只是代码提示的作用,没有也可以调用,如果为了编写方便和代码提示可以自己手动写一下,API也就几个函数,自行扩展另说,拿我自己的先抛个砖
declare class PomeloClient我也是初学,以上一点摸坑的经验,希望跟大家交流交流,有不对的还请多指正
{
init(params:any, cb?:Function);
request(route:string, msg?:any, cb?:Function);
notify(route:string, params:any);
on(event:string, cb:Function);
off(event:string, cb:Function);
disconnect();
}
没有找到相关结果
已邀请:
要回复问题请先登录
5 个回复
D7_Tira
赞同来自: kawazo
fs.js:159
throw new ERR_INVALID_CALLBACK();
^
TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
at maybeCallback (fs.js:159:9)
at Object.fs.writeFile (fs.js:1278:14)
at /usr/local/lib/node_modules/component/bin/component-build:206:8
at /usr/local/lib/node_modules/component/node_modules/component-build/lib/scripts.js:37:5
at /usr/local/lib/node_modules/component/node_modules/component-builder/lib/builders/builder.js:142:9
at next (/usr/local/lib/node_modules/component/node_modules/chanel/lib/proto.js:258:5)
at Function.onevent (/usr/local/lib/node_modules/component/node_modules/chanel/lib/proto.js:194:9)
at Object.onceWrapper (events.js:273:13)
at Function.emit (events.js:182:13)
at /usr/local/lib/node_modules/component/node_modules/chanel/lib/proto.js:142:10
请问是怎么解决的啊
qian
赞同来自:
kawazo
赞同来自:
实现奇迹
赞同来自:
150*****440
赞同来自: