关于SSL 8192限制的疑问

seanloo

我用的官方的json rpc服务代码,改成了ssl加密连接,一般数据通信都没有问题,但是发现有个8192的限制,发送数据最大只能是8192,数据量大的时候,客户端收到的数据不完整,无法正常完成业务,在源码中


,把这个8192去掉就能正常发送完整的数据了,问题是,为什么要有这个限制,取消有什么影响吗?

阅读 746
1个回答

walkor

收不到完整数据的客户端是什么客户端?贴下客户端接收部分的代码。如果接收不完整,可能是客户端接收代码有问题,接收时要判断数据结束标记,如果没收到标记就应该继续读,这样就能读全了。

https://bugs.php.net/bug.php?id=72333
8192这个是因为php有些版本有bug,ssl下发送大的数据会报错,需要截断成8192分多次发送。
这个bug在php 7.0.18 及 php 7.1.4 被修复。如果你的php版本大于这个版本,可以去掉8192的限制。

  • seanloo 2020-09-03

    客户端用的也是官方的rpc的客户端代码 (RpcClient.php文件),php环境是用的是7.3.9,如果可以去掉的话那我这边就去掉算了

  • walkor 2020-09-03

    7.3.9 可以去掉

  • seanloo 2020-09-03

    @1:感谢回复,现在清楚是怎么回事了