`Websocket` 数据解压缩踩坑
今天业务上需要对接下 其他站点 的 websocket 服务.
坑不少 之前 B平台 对接遇到个 ping&pong 包的问题 Webscocket pong 包 php 踩坑实例
今天对接 O平台 发现官方的demo 没有我大PHP. 太过分了~
新来的同学通过golang demo 找到 golang中compress/flate包 这篇文章找到下面内容:
维基百科给出的解释是:DEFLATE是同时使用了
LZ77算法与哈夫曼编码(Huffman Coding)的一个无损数据压缩算法。它最初是由菲尔·卡茨(Phil Katz)为他的PKZIP软件第二版所定义的,后来被RFC 1951标准化。
通过 百度 搜索 PHP DEFLATE 数据压缩算法 内容如下:
LZ77: 是一种基于字典的无损数据压缩算法(还有 LZ78, LZW 等)
deflate: 也是一种数据压缩算法,实际上就是先用 LZ77 压缩,然后用霍夫曼编码压缩
gzip: 是一种文件结构,也可以算一种压缩格式,通过 defalte 算法压缩数据,然后加上文件头和adler32校验
zlib: 是一个提供了 deflate, zlib, gzip 压缩方法的函数库;也是一种压缩格式(用 deflate 压缩数据,然后加上 zlib 头和 CRC 校验)
代码示例 我处理了一下 :
|
内容实际上很多. 3中压缩方式 我就只是挑了对我有用的一种 gzinflate. O平台 的 ws 解压 通过 gzinflate 函数解压即可.
PHP中存在一组看起来很像的压缩解压函数:
压缩函数:gzcompress gzdeflate gzencode
解压函数:gzuncompress gzinflate gzdecode
!!! 追加一个坑 线上 swoole v4.2.11
websocket_mask |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Leon!
评论




