何謂一個好的系統呢 ? 為什麼會問這個問題呢 ? 因為事實上這個是我原本想要撰寫的主題。咱們工程師在開發系統,所學習的大部份的技術,基本上都是為了追求『建立一個好的系統』,然後我本來想將建立一個好的系統的知識 ...
本篇文章,咱們將要在說明另一個在 php 實現 reactor 模式的東西swoole。 本篇文章分為以下幾個章節 : Swoole 的架構 Swoole 非阻塞 I/O 的處理 Swoole 的 Coroutine Swoole 實際使用的注意事項 swoole 的架構 swoole 官網寫到 : event-driven asynchronous & coroutine-based concurrency networking communication engine with high performance written in C and C++ for PHP. swoole 它 ...
上一篇文章PHP 的 Web 運行原理 ( 2 ) - 非阻塞 I/O 之 Reactor 模式我們理解到實現非阻塞 I/O 的 reactor 模式以後,接下來本篇文章我們將來要說明,在 php 中的 reactor 實現reactPHP。 本篇文章分為以下三個章節 : reactPHP 基本概念 reactPHP 非阻塞 I/O 實現 ...
前篇: PHP 的 Web 運行原理 ( 1 ) 上面一篇文章中,我們有提到兩種 php 的 web 運行模式moduel與fast_cgi模式,它們在某種情況下,都會有些問題,而我們這篇文章就是要來理解是碰到什麼問題,然後又是如何解決呢 ? ...
Nodejs 出來時它的官網寫這以下的描述 : Node.js is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js’ package ecosystem, npm, is the largest ecosystem of open source libraries in the world. 簡而言之 Nodejs 是運行在 V8 javascript 引擎,並且使用 Event driven 與 non-blocking I/O 模式所建立出來的 ...
socket.io 是一套可以讓我們快速與簡單的建立一套,讓 client 與 server 可以雙向溝通的 Libary,而當我們使用它來建立一個 message server 後,通常在一定的使用量以後,會開始的考慮要加機器來進行擴展,同時間也會建立一台 load balance 的應用來分散請 ...
這篇文章雖然主題為PHP 的 Web 運行原理,但是比較白話文的說,事實上是想要理解這件事情 : 一個 http 請求進來後,php 到底是如何運行呢 ? 要理解這件事情,有個最基本的觀念要先理解,那就是下面這段指令,它到底是如何 ...
什麼是 Laravel Facade ? 在一般情況咱們如果要使用物件的某個方法可能會寫成如下 : <?php $userService = $app->make('UserService'); $userService->createUser(); 但是有時後你會看到如下的程式碼 : <?php UserService::createUser(); 而這就是 Laravel 所提供的 Facade 語法糖,而 Facade 實際上是一種設計模式。 Facade(外觀) 設計模式 Facade 設計 ...
什麼是 Laravel Service Provider ? 上一篇文章『PHP Laravel 的 Container 理解』中咱們學習到了 Laravel 的 Container 是一種用來解決依賴與耦合的概念,它建立了一個容器並且在裡面定義好抽像與實際類別的對應,最後就可以自動的進行依賴性注入。如下偽程式碼。 <?php $containter ...
Container 是什麼 ? Laravel Container 是什麼呢 ? 我們先來理解 Container 容器 是什麼。 容器抽象一點概念是指用來裝東西的載體,向菜籃也算個容器,而在 Laravel 中所代表的意思就是指 : 裡面裝了一堆可以用的服務載體,就叫 Container。 像我們每當要 ...
前言 這辛苦的三十天總於結束了,當初原本只是想要理解直播相關協議的東西一下,但是卻發現越來越多奇怪的名詞跑了出來,就算大概的知道 HLS 是要做什麼,但你總是會覺得前後知識好像缺了什麼,別人問你一下沒有 HLS 前是如 ...
正文開始 上一篇文章中,咱們已經理解了為什麼 P2P 連線如此的困難,接下來這篇文章咱們將要學習: WebRTC 是如何進行打洞與連線呢 ? WebRTC 的打洞流程 ICE WebRTC 它主要使用一個名為ICE ( Interactive Connectivity Establishment ) 的框架來進行打洞,它內部整合了 STUN 與 TURN ...
正文開始 在開始說明 WebRTC 如何建立 P2P 連線前,咱們要先理解一件事情,那就是 WebRTC 要使用非常多的 P2P 連線技術,那位啥它需要使用如此多的技術呢 ? 那就是本篇文章要探討的主題: 為什麼 P2P 連線很麻煩呢 ? 因為如果你理解了這個問題 ...
正文開始 上一篇文章中,咱們已經學習完了 WebRTC 的一些基本知識,接下來咱們要針對 Signaling Server 這東東來做做一些比較深的的探討。 Signaling Server 要做的事情。 WebRTC 與 SDP。 Signaling Server的實作選擇。 Signaling Server 要做的事情 在上一篇文章,我們大概知 ...
正文開始 在很前面的文章中,咱們有簡單的介紹如何使用 WebRTC 來採集聲音與影像,但那時只是很簡單的介紹一下而以,所以接下來的幾篇文章,咱們將要來深入的了解 WebRTC。 這篇文章將要介紹幾個 WebRTC 的基概念,大約分成以 ...
正文開始 現今大部份的直播咱們要可以與漂亮的直播主姐姐或硬漢大叔進行互動,基本上咱們只能使用文字,也就是所謂的聊天室,而這篇文章咱們將要介紹另一種互動方式,那就是直播連麥,也就是直播主與聽眾可以進行語音 ...
正文開始 上一篇文章中咱們學習完了 CDN 的相關知識以後,接下來這篇文章,我們將要將上一篇所學的來改善咱們以下兩篇文章可動版的架構。 使用 CDN 來調整可動版的架構 30-20之如何建立像 KKTV 一樣的點播功能呢 ? 30-21 ...
正文開始 上一篇文章中,咱們有提到點播與直播可動版本的一些問題,如下所列。 人多時連線數限制問題。 人多時頻寬問題。 人多時效能消耗問題。 遠距離看片卡頓的問題。 接下來咱們要來理解一下,解這上述問題的關鍵技術 CDN ...
正文開始 前面文章中咱們簡單了可以動的點播 ( like KKTV )與直播 ( like 17 )的功能,那接下來這篇文章主題要探討的目問題為: 這兩篇文章實際上應用會有什麼問題 ? 30-20之如何建立像 KKTV 一樣的點播功能呢 ? 30-21之如何 ...
正文開始 上一篇文章中,咱們已經學習了如何建立點播這種類型的網站應用,接下咱們要來學學如何建立直播應用。 在筆者的30-09之別人要如何聽到我的聲音呢 ?有提到三種影音的傳遞方式,分別為: 將聲音檔案直接丟給 ...
正文開始 前面聲音與影像的基本原理都學習完後,咱們接下來要來實作一些東西。 在筆者的30-09之別人要如何聽到我的聲音呢 ?有提到三種影音的傳遞方式,分別為: 將聲音檔案直接丟給對方 ( 方法 1 ) 將聲音檔案以串流 ...
正文開始 在前面的文章中,咱們咱們已經會了如何將聲音傳送給對方,而接下來這篇文章咱們就要來學習 收到了聲音已後,要如何的播出呢 ? 咱們收到聲音以後(檔案或串流) 那接下來要如何播出了 ? 答案就是使用播放器,而接 ...
正文開始 30-12之 RTP/RTCP 傳輸協議 30-13之 RTSP 傳輸協議 30-14之 RTMP 傳輸協議 30-15之 HLS 傳輸協議 30-16之 HTTP-FLV 傳輸協議) 30-17之 MPEG-DASH 傳輸協議) 前面的幾面文章,咱們學習了各種型的影音傳輸媒體,接下來將 ...
正文開始 接下來咱們要來介紹 MPEG-DASH協議。 MPEG-DASH 協議 本篇文章將會分成幾個章節來理解 MPEG-DASH 協議: MPEG-DASH 協議是要用來完成什麼事情呢 ? MPEG-DASH 協議如何完成它想做的事情呢 ? 建立 MPEG-DASH 的串流傳輸流程。 MPEG-DASH 的特點總結。 MPEG-DASH 協議是要 ...
正文開始 接下來咱們要來介紹 HTTP-FLV 協議。 HTTP-FLV 協議 本篇文章將會分成幾個章節來理解 HTTP-FLV 協議: HTTP-FLV 協議是要用來完成什麼事情呢 ? HTTP-FLV 協議如何完成它想做的事情呢 ? 建立 HTTP-FLV 的串流傳輸流程。 HTTP-FLV 的特點總結。 HTTP-FLV 協議是要用來完成什麼事情 ...
正文開始 接下來咱們要來介紹 HLS 協議。 HLS 協議 本篇文章將會分成幾個章節來理解 HLS 協議: HLS 協議是要用來完成什麼事情呢 ? HLS 協議如何完成它想做的事情呢 ? 建立 HLS 的串流傳輸流程。 HLS 的延遲問題。 HLS 的特點總結。 HLS 協議是要用 ...
正文開始 接下來咱們要來介紹 RTMP 協議。 RTMP 協議 本篇文章將會分成幾個章節來理解 RTMP 協議: RTMP 協議是要用來完成什麼事情呢 ? RTMP 協議如何完成它想做的事情呢 ? 建立 RTMP 的串流傳輸流程。 RTMP 的特點總結。 RTMP 協議是要用來完成什麼事情 ...
正文開始 本篇文章咱們將要開始介紹第一個應用層的流通訊協議 RTSP,別忘了上一篇介紹的 RTP 是傳輸層。 RTSP 協議 本篇文章將會分成幾個章節來理解 RTSP 協議: RTSP 協議是要用來完成什麼事情呢 ? RTSP 協議如何完成它想做的事情呢 ? ...
正文開始 在前一篇學習完了 TCP 與 UDP 協議以後,咱們要介紹另一個傳輸層協議: RTP 協議 (RTCP 後來會提到) 本篇文章將會分成幾個章節來理解 RTP 協議: RTP 協議是要用來完成什麼事情呢 ? RTP 協議如何完成它想做的事情呢 ? RTP 協議的基本概 ...
正文開始 上一文章中咱們理解了每一層通訊協議大約是在做什麼事情以後,咱們這篇文章中將專門來說明,在傳輸層的兩個協議TCP與UDP。 為什麼會選這兩個出來說呢 ? 因為在即時影音傳輸的世界中,這兩個協議常常拿出 ...