在论坛找了下2.x的方案,改了无效。继续对比
websocket-libwebsocket.cpp的源码。
发现3.X比2.X多了个WS_ENABLE_LIBUV
于是把
#if CC_PLATFORM == CC_PLATFORM_ANDROID
#define WS_ENABLE_LIBUV 1
#else
#define WS_ENABLE_LIBUV 0
#endif
改为
#if CC_PLATFORM == CC_PLATFORM_ANDROID
#define WS_ENABLE_LIBUV 0
#else
#define WS_ENABLE_LIBUV 0
#endif
在onSubThreadLoop方法 中
修改为
wsPolling = true;
lws_service(wsContext, 2);
std::this_thread::sleep_for(std::chrono::milliseconds(3));
wsPolling = false;
搞定!cpu下降一半。
总结:看来3.X ,cc官方自己都不用来做原生的。所有只实现了功能,或者功能残缺。
只是叫我们开发者的,冲啊,冲3.X
浪费时间1天排查定位高cpu问题