做网络通讯模块遇到的问题

我想websocket做异步传输接收,这块没问题。array buffer或json做协议解析。如果用json,希望提供异步解析接口。如果用array buffer生成/解析 二进制块也要能异步。所以,请在native支持web worker或等价的东西,然后引擎层统一出接口,这样异步json或者异步二进制解析什么的我们自己可以做。如果没有这个的支持,传输过程在协议序列化反序列化的时候势必要阻塞,这是游戏,这怎么可能,一条消息可能会比较大或者消息比较密集的。现在没有这个的支持,根本做不了大中型项目。我们在论坛上提了很多需求,请也给个反馈,是不是接受,以及这个的优先级排到哪里了,roadmap也更新频繁点,让我们知道你们怎么计划的。还有我感觉这个引擎就是触控在贡献代码,事实上很多公司自己做了定制或者功能加强,这些代码没有一个有效的渠道贡献出来这个是个问题,开源的优势没发挥出来。

还有个问题,native的时候 js是跑在v8上吗?如果是的话,这些的支持是不是要看v8什么时候支持?

native 目前跑在 SpiderMonkey 上,websocket 是支持的。
不过 JSON 的异步接口应该暂时不会提供。
如果是 webworker ,对 JSON 解析应该没有帮助。因为主线程和 worker 通讯时,传输的消息底层还是基于字符串序列化的,那么你的 JSON 就算在 worker 中解析好了,要传回主线程还是需要再重新 stringify…
关于 SpiderMonkey 并发的更多信息,可参考 https://blog.mozilla.org/javascript/2015/02/26/the-path-to-parallel-javascript/
@panda

为什么不跑在v8 上呢?不是更快吗?

我也是不太懂的,瞎问的哦

V8 和 Spidermonkey 的速度差别并不大,都是非常先进的开源 JS 引擎,两个团队之间互相沟通和学习也非常多。

v8 和 spidermonkey 都是 JS 引擎,并不包含浏览器中大家熟悉的 DOM 排版,网络库等功能,这些都是浏览器自身或者排版引擎的功能。所以 Cocos Creator 中的原生网络库支持也是基于各个平台的基础网络库开发出来的。