native的websocket会截取数据

代码log输出

cc.sock.onmessage = function(buf) {
                    console.log(buf.data, "onmessage");
                    console.log(buf.data.length);

打印数据
06-15 09:55:41.733 29158-29315/com.xplay.dtxxl D/WebSocket.cpp: Receiving data:index:23, len=1403
06-15 09:55:41.741 29158-29194/com.xplay.dtxxl D/WebSocket.cpp: Notify data len 1403 to Cocos thread.
06-15 09:55:41.741 29158-29194/com.xplay.dtxxl D/jswrapper: JS: e031out_start layer
e031out_title {“name”:“e[35m紫藤使者e[2;37;0m”, “type”:“layer”}
onmessage
06-15 09:55:41.741 29158-29194/com.xplay.dtxxl D/jswrapper: JS: 83

问题说明:
cpp打印获取到长度为1403,但是onmessage获取的长度只有83,数据传到js层被拦截
服务器发送数据过来每次必定出现

分析问题为下面代码,怎么修护不得而知,如果能处理,感激不尽。

// In UI thread
            LOGD("Notify data len %d to Cocos thread.\n", (int)frameSize);

            cocos2d::network::WebSocket::Data data;
            data.isBinary = isBinary;
            data.bytes = (char*)frameData->data();
            data.len = frameSize;

            if (*isDestroyed)
            {
                LOGD("WebSocket instance was destroyed!\n");
            }
            else
            {
                _delegate->onMessage(_ws, data);
            }

@panda

@jare @337031709

收到的数据有问题?

忘了说,浏览器下数据不会被截图,显示正常,打印也没问题的

1403的数据被截图,最后只有83了

根据以前lua版本的经验,数据被当字符串遇到’\0’截断了,看看是不是调用了没带长度的传数据到脚本层的函数

浏览器收到的数据
长度显示为1185,数据正常,出问题的是安卓,iOS还没看

数据里面不排除有这个可能

浏览器的没问题,显示合理,native的不完善,应该优化一下

并不是Native不完善,并且也没得优化,基础原理问题:只给内存地址的开头,怎么算结束

请问楼主解决了吗?我也遇到这个问题了。。。