资讯专栏INFORMATION COLUMN

Swoole WebSoctet 使用 zlib 压缩之 PHP 与 pako.js

ASCH / 2359人阅读

摘要:一些理论知识先说一下算法吧,是压缩文件的默认算法,其实现在不光用在文件中在等其他的压缩文件中都用,实际上只是一种压缩数据流的算法,任何需要流式压缩的地方都可以用。也就是说格式格式,是文件格式,是这些文件格式使用的压缩算法。

一些理论知识

先说一下deflate算法吧,deflate是zip压缩文件的默认算法, 其实deflate现在不光用在zip文件中, 在7z, xz等其他的压缩文件中都用, 实际上deflate只是一种压缩数据流的算法,任何需要流式压缩的地方都可以用。

也就是说 zlib 格式, gzip 格式,是文件格式,deflate 是这些文件格式使用的压缩算法。

传输方式

deflate 压缩后是二进制,通常有两种传输方式:

二进制

Base64编码

二进制

PHP

// 压缩,注意:其中 ZLIB_ENCODING_DEFLATE 参数是不能少的
$data = gzdeflate(json_encode($array, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), 6, ZLIB_ENCODING_DEFLATE);

// 使用 swoole 以二进制的方式发送
$webSocket->push($fd, $data, WEBSOCKET_OPCODE_BINARY);

JavaScript

// 消息事件
ws.onmessage = function(e) {
    // 转换前
    console.log(e.data);
    // 开始转换
    var blob = e.data;
    var reader = new FileReader();
    reader.readAsBinaryString(blob);
    reader.onload = function (evt) {
      var data = pako.inflate(evt.target.result, { to: "string" })
      // 转换后
      console.log(JSON.parse(data))
    };
};
Base64编码

通常在 WebSoctet 不会使用这种方法,但是在接口或其他文本传输中会使用到。

PHP + JavaScript

Swoole WebSoctet 框架

安利一个基于 Swoole 的 WebSoctet 开发框架: MixPHP

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29443.html

相关文章

  • swoolefy-基于swoole扩展实现的高性能的常驻内存型API和Web应用服务框架

    摘要:是一个基于扩展实现的轻量级高性能的常驻内存型的和应用服务框架高度封装了,,服务器,以及基于实现可扩展的服务,同时支持包方式安装部署项目。基于实用,抽象事件处理类,实现与底层的回调的解耦,支持同步异步调用,内置等常用组件等。 swoolefy swoolefy是一个基于swoole扩展实现的轻量级高性能的常驻内存型的API和Web应用服务框架,高度封装了http,websocket,ud...

    lewinlee 评论0 收藏0
  • centos7.4源码安装php,swoole,nginx,redis,mariadb

    摘要:源码安装文件下载下载源码下载下载源码下载下载源码下载源码下载源码下载源码包解压命令包解压命令安装安装前的准备安装安装安装安装安装需要的扩展安装安装时需要的扩展安装在源码目录中执行以下操作执行命 源码安装 1. 文件下载 1.1 下载PHP源码 php.net 下载 php-7.2.7.tar.gz 1.2 下载swoole源码 https://github.com/swoole/s...

    Invoker 评论0 收藏0
  • 前端进阶:二进制数据的操控----附项目代码

    摘要:引言近期,工作中发现,有些前端小伙伴很少接触到二进制数据,所以将项目中二进制数据的应用和大家分享一下,适合入门了解,高手慎入,欢迎拍砖。这样,我们就完成了二进制数据的请求解压读取和存储了。 showImg(https://segmentfault.com/img/bV86EZ?w=1920&h=500); 引言: 近期,工作中发现,有些前端小伙伴很少接触到二进制数据,所以将项目中二进...

    alogy 评论0 收藏0

发表评论

0条评论

ASCH

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<