【BUG】Websocket frame结尾空字符被截断

环境:

Creator:
1.6.1(mac和win都有这个问题)

平台:
android,iOS (web没问题,模拟器没测)

出现概率:
毕现

使用常规的websocket连接,send时,body末尾的空字符(\x00)在原生环境下会被截掉。
代码大致有这些:

//调试代码输出body长度和最后一个字符的asscii int值
this.debug(">>> len: " + out.length);
this.debug(">>> last: " + out.charCodeAt(out.length - 1));

web浏览器上是正常的,可以有类似的输出(后端收到的数据正常):

>>> len: 134
>>> last: 0

在原生环境下末尾的 \x00 会被截掉,android日志截图如下

可以看到js代码里打印的length比Websocket-libwebsockets.cpp打印的length大1,服务器端收到的数据也确实是少了一个字节的。

1赞

赞一个。

补充下,收到消息时也会有这个问题。

我用的是stomp协议,末尾这个空字符很重要啊!!

哎,心好累!折腾了好几天。
服务器端和客户端都先写了hack代码,cpp改不动。。。