摘要:一些理論知識先說一下算法吧,是壓縮文件的默認算法,其實現在不光用在文件中在等其他的壓縮文件中都用,實際上只是一種壓縮數據流的算法,任何需要流式壓縮的地方都可以用。也就是說格式格式,是文件格式,是這些文件格式使用的壓縮算法。
一些理論知識
先說一下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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29443.html
摘要:是一個基于擴展實現的輕量級高性能的常駐內存型的和應用服務框架高度封裝了,,服務器,以及基于實現可擴展的服務,同時支持包方式安裝部署項目?;趯嵱?,抽象事件處理類,實現與底層的回調的解耦,支持同步異步調用,內置等常用組件等。 swoolefy swoolefy是一個基于swoole擴展實現的輕量級高性能的常駐內存型的API和Web應用服務框架,高度封裝了http,websocket,ud...
摘要:源碼安裝文件下載下載源碼下載下載源碼下載下載源碼下載源碼下載源碼下載源碼包解壓命令包解壓命令安裝安裝前的準備安裝安裝安裝安裝安裝需要的擴展安裝安裝時需要的擴展安裝在源碼目錄中執行以下操作執行命 源碼安裝 1. 文件下載 1.1 下載PHP源碼 php.net 下載 php-7.2.7.tar.gz 1.2 下載swoole源碼 https://github.com/swoole/s...
摘要:引言近期,工作中發現,有些前端小伙伴很少接觸到二進制數據,所以將項目中二進制數據的應用和大家分享一下,適合入門了解,高手慎入,歡迎拍磚。這樣,我們就完成了二進制數據的請求解壓讀取和存儲了。 showImg(https://segmentfault.com/img/bV86EZ?w=1920&h=500); 引言: 近期,工作中發現,有些前端小伙伴很少接觸到二進制數據,所以將項目中二進...
閱讀 3674·2021-11-23 09:51
閱讀 1035·2021-11-19 11:30
閱讀 3360·2019-08-29 14:16
閱讀 3370·2019-08-29 12:12
閱讀 2363·2019-08-26 13:40
閱讀 3471·2019-08-26 12:21
閱讀 3073·2019-08-26 11:55
閱讀 2221·2019-08-26 11:35