如何在GatewayWorker中设置maxPackageSize属性呢?

问题描述


我在用GatewayWorker传输数据时,数据包过大了,我想设置一下maxPackageSize但是不知道如何在GatewayWorker中设置maxPackageSize属性

259 2 0
2个回答

walkor

Events.php里 onWorkerStart里设置
use Workerman\Connection\TcpConnection;

TcpConnection::$defaultMaxPackageSize = 1024000;

  • 岛屿可以找到海 2023-10-17

    还是会报错,貌似不是数据包大小的问题哎,我这边做的是一个A这边通过file_get_contents读取文件然后base64_encode之后发送给B,然后B这边在base64_decode,再用file_put_contents保存文件,但貌似base64_encode之后体积会变大,然后B在接收的时候就会报错error package. package_length

  • walkor 2023-10-17

    error package. package_length 是消息不符合协议,无法获取数据包的长度

  • 岛屿可以找到海 2023-10-17

    error package. package_length=13584282,emm是我没把报错说完整

  • 岛屿可以找到海 2023-10-17

    我这边已经设置了TcpConnection::$defaultMaxPackageSize = 10241024100;

walkor

截图

  • 岛屿可以找到海 2023-10-17

    $connection->maxPackageSize=20240000;我设置试了一下还是不行,同样的代码,传输的文件只要小一点就可以,只要超过10m就不行了。

  • walkor 2023-10-17

    restart重启下

  • 岛屿可以找到海 2023-10-17

    每次修改后都重新运行了windows.bat还是不行

  • walkor 2023-10-17

    Events.php里 onWorkerStart里也设置下

    use Workerman\Connection\TcpConnection;
    
    TcpConnection::$defaultMaxPackageSize = 20240000;

    如果还不行就在 app/functions.php 里加一句

    TcpConnection::$defaultMaxPackageSize = 20240000;

  • 岛屿可以找到海 2023-10-17

    哎我去,这次可以了,感谢老大

🔝