顶libpomelo2

标签: 灌水闲聊
linyouhappy 在 2015-10-4 23:37发布
linyouhappy 在 2015-10-7 03:06重新编辑 分享到 weibo
9 回复
#1 roytan 2015-10-5 01:01 回复

给你一个终极解决方案,自己写通信层,用每个平台的原生代码,id,route,body 三个字段而已

我一直觉得官方的这个C库跨平台在移动网络环境下方向就是错的,即使你这次编译出来可以用又怎么样呢?后面你会发现你还有太多需要打洞的地方来维持一个稳定通信层,如果你是做一个产品级项目的话。细节我就不讲了,等你被坑得鼻青脸肿的时候,你就懂了。

#2 linyouhappy 2015-10-5 03:39 回复

libpomelo2这个库封装得很好,各种各样的队列等等,每个loop维持一种队列,可以实现底层的poll操作,效率那是相当高的。扩展性也很好。
高性能的网络模块,很推荐作为pc端开发。

只是libuv这个库,为了高性能,会尽量使用操作系统级别的底层库,以至于为了夸各种平台,它要专门针对各个平台开发一套代码。比如win很多不支持,它也弄出一套代码。但是,作为安卓平台,可能支持性有些问题。毕竟安卓内核被阉割的linux版本。

#3 linyouhappy 2015-10-5 03:44 回复

只能这样处理了。网络模块使用websocket,抄js端的代码。然后,调用libpomelo2的protocal和proto,pk的模块。
性能方面,肯定是比不上libpomelo2的了。

#4 fantasyni 2015-10-5 09:47 回复

gyp 这样安装就行了 git clone https://github.com/martine/gyp.git build/gyp 就一个py脚本

#5 roytan 2015-10-5 10:55 回复

所以这个库的方向很奇怪,pc端可以很好工作,但是pomelo又不是pc端游方向的框架。而在移动端ios,android,wp上面,这库又很难适应移动端的需求。尴尬。。。

#6 linyouhappy 2015-10-5 15:29 回复

终于搞定libuv。搞定了libuv,就搞定了libpomelo2。
今天再试一下最新版的libuv.
所有操作参照README.md文件的描述。
为了避免可能问题,直接导入libuv源码。也方便日后研究。
导入源代码怎样取文件,可以参照它配置生成的配置文件。

libuv搞定了。libpomelo2基本不是事。
libpomelo2很高效,所有的逻辑都运行在一个线程上,异步是通过自身的loop实现的。

然后把libpomelo2绑定到js中,丢弃pomelo的js版。

#7 linyouhappy 2015-10-5 15:36 回复

安卓使用的NDK版本是android-ndk-r9d。
toolchain自动选择4.8

#8 linyouhappy 2015-10-7 02:45 回复

经过测试。安卓模拟器bluestacks也可以正常运行libpomelo2。看来libpomelo2依靠libuv实现很强大的跨平台能力。

#9 linyouhappy 2015-10-7 02:47 回复

libuv很小,却实现很多功能,可以让so文件的大小大幅减小。

回到顶部