成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Swoole WebSoctet 使用 zlib 壓縮之 PHP 與 pako.js

ASCH / 2368人閱讀

摘要:一些理論知識(shí)先說一下算法吧,是壓縮文件的默認(rèn)算法,其實(shí)現(xiàn)在不光用在文件中在等其他的壓縮文件中都用,實(shí)際上只是一種壓縮數(shù)據(jù)流的算法,任何需要流式壓縮的地方都可以用。也就是說格式格式,是文件格式,是這些文件格式使用的壓縮算法。

一些理論知識(shí)

先說一下deflate算法吧,deflate是zip壓縮文件的默認(rèn)算法, 其實(shí)deflate現(xiàn)在不光用在zip文件中, 在7z, xz等其他的壓縮文件中都用, 實(shí)際上deflate只是一種壓縮數(shù)據(jù)流的算法,任何需要流式壓縮的地方都可以用。

也就是說 zlib 格式, gzip 格式,是文件格式,deflate 是這些文件格式使用的壓縮算法。

傳輸方式

deflate 壓縮后是二進(jìn)制,通常有兩種傳輸方式:

二進(jìn)制

Base64編碼

二進(jìn)制

PHP

// 壓縮,注意:其中 ZLIB_ENCODING_DEFLATE 參數(shù)是不能少的
$data = gzdeflate(json_encode($array, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), 6, ZLIB_ENCODING_DEFLATE);

// 使用 swoole 以二進(jìn)制的方式發(fā)送
$webSocket->push($fd, $data, WEBSOCKET_OPCODE_BINARY);

JavaScript

// 消息事件
ws.onmessage = function(e) {
    // 轉(zhuǎn)換前
    console.log(e.data);
    // 開始轉(zhuǎn)換
    var blob = e.data;
    var reader = new FileReader();
    reader.readAsBinaryString(blob);
    reader.onload = function (evt) {
      var data = pako.inflate(evt.target.result, { to: "string" })
      // 轉(zhuǎn)換后
      console.log(JSON.parse(data))
    };
};
Base64編碼

通常在 WebSoctet 不會(huì)使用這種方法,但是在接口或其他文本傳輸中會(huì)使用到。

PHP + JavaScript

Swoole WebSoctet 框架

安利一個(gè)基于 Swoole 的 WebSoctet 開發(fā)框架: MixPHP

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29443.html

相關(guān)文章

  • swoolefy-基于swoole擴(kuò)展實(shí)現(xiàn)的高性能的常駐內(nèi)存型API和Web應(yīng)用服務(wù)框架

    摘要:是一個(gè)基于擴(kuò)展實(shí)現(xiàn)的輕量級(jí)高性能的常駐內(nèi)存型的和應(yīng)用服務(wù)框架高度封裝了,,服務(wù)器,以及基于實(shí)現(xiàn)可擴(kuò)展的服務(wù),同時(shí)支持包方式安裝部署項(xiàng)目。基于實(shí)用,抽象事件處理類,實(shí)現(xiàn)與底層的回調(diào)的解耦,支持同步異步調(diào)用,內(nèi)置等常用組件等。 swoolefy swoolefy是一個(gè)基于swoole擴(kuò)展實(shí)現(xiàn)的輕量級(jí)高性能的常駐內(nèi)存型的API和Web應(yīng)用服務(wù)框架,高度封裝了http,websocket,ud...

    lewinlee 評(píng)論0 收藏0
  • centos7.4源碼安裝php,swoole,nginx,redis,mariadb

    摘要:源碼安裝文件下載下載源碼下載下載源碼下載下載源碼下載源碼下載源碼下載源碼包解壓命令包解壓命令安裝安裝前的準(zhǔn)備安裝安裝安裝安裝安裝需要的擴(kuò)展安裝安裝時(shí)需要的擴(kuò)展安裝在源碼目錄中執(zhí)行以下操作執(zhí)行命 源碼安裝 1. 文件下載 1.1 下載PHP源碼 php.net 下載 php-7.2.7.tar.gz 1.2 下載swoole源碼 https://github.com/swoole/s...

    Invoker 評(píng)論0 收藏0
  • 前端進(jìn)階:二進(jìn)制數(shù)據(jù)的操控----附項(xiàng)目代碼

    摘要:引言近期,工作中發(fā)現(xiàn),有些前端小伙伴很少接觸到二進(jìn)制數(shù)據(jù),所以將項(xiàng)目中二進(jìn)制數(shù)據(jù)的應(yīng)用和大家分享一下,適合入門了解,高手慎入,歡迎拍磚。這樣,我們就完成了二進(jìn)制數(shù)據(jù)的請(qǐng)求解壓讀取和存儲(chǔ)了。 showImg(https://segmentfault.com/img/bV86EZ?w=1920&h=500); 引言: 近期,工作中發(fā)現(xiàn),有些前端小伙伴很少接觸到二進(jìn)制數(shù)據(jù),所以將項(xiàng)目中二進(jìn)...

    alogy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<