wokerman作http服务时,如何压缩返回的json数据?

dior

用php内置的服务器,在返回的时候加上ob_start("ob_gzhandler");
数据成功压缩。
框架:thinkphp6
用wokerman启动的时候,一直压缩不了。求指导如何压缩返回的数据?

截图

2583 3 0
3个回答

keytehu

试试
$connection->send(gzencode('数据'));

  • dior 2019-12-19

    谢谢回复!刚试了一下,返回的数据是压缩了,但是返回的数据好像不是json

dior

谢谢回复!刚试了一下,这样的话,返回的数据会变成二进制的数据?截图

  • blogdaren 2019-12-20

    启用压缩后返回给客户端的压缩数据就是这样的,只不过按理说主流的浏览器默认都是支持自动gzip、deflate解压缩的,你换其他浏览器试试看; 至少我的firefox、chrome都能如期工作。

  • dior 2019-12-21

    @614:嗯嗯,谢谢,出现这样情况是用gzencode();方法压缩后的。配置$connection->gzip = true;后,不用gzencode。数据就正常了。

six

你们方法不对,不用手动压缩,设置下$connection->gzip = true;就行了

$connection->gzip = true;
$connection->send('数据');

发送的数据会自动压缩

  • dior 2019-12-19

    原来有这设置,谢谢大佬!实测有效,36K压缩到了4K

  • dignfei 2022-04-26

    大佬,怎么看是否压缩成功?

  • dignfei 2022-04-26

    gateway是通过Gateway::sendToClient($client_id,$data)来发送数据的。怎么使用这个?

  • walkor 2022-04-26

    $connection->gzip 是3.x的用法,4.x以上已经不支持了。
    这个帖子已经过期了,不要回复了

年代过于久远,无法发表回答
🔝