
淺談 Ruby 的 Fiber(六)
經過前面幾篇文章的介紹,我們已經初步的了解 Fiber 的性質。這系列的文章目標是利用 Fiber 實現再不透過 Thread 或者 Process 的情境,來實現支援多人連線的 TCP 聊天伺服器。
從這一篇開始,我們就要正式的來挑戰完整的實作了!
經過前面幾篇文章的介紹,我們已經初步的了解 Fiber 的性質。這系列的文章目標是利用 Fiber 實現再不透過 Thread 或者 Process 的情境,來實現支援多人連線的 TCP 聊天伺服器。
從這一篇開始,我們就要正式的來挑戰完整的實作了!
經過上次的嘗試,我們已經開始對於 Fiber 的性質有一些了解,目前還需要解決已經結束的 Fiber 被呼叫,以及來不及處理的問題。
在上週的文章我們注意到 Fiber 的使用並不是那麼容易的,因為我們需要自行管理每一個 Fiber 被恢復(#resume
)的時機,這週就繼續來挑戰吧!
延續上一篇文章的實作,我們已經有一個簡易的 Thread 版本 TCP Socket 伺服器可以運作,那麼該怎麼用 Fiber 修改呢?
第一篇我們已經大致上了解 Fiber 的運作原理,不過要能夠實際上的掌握跟應用,我認為是需要靠實作來熟悉的。
所以,這一篇我們先來講學習 Socket 最常見的 TCP 伺服器實作吧!
前陣子再研究 Ruby 從 1.9.3 就開始提供的 Fiber 該怎麼使用,不過網路上的資料大多都只是簡單的討論。那麼 Fiber 到底是什麼呢?這系列的文章會詳細的介紹 Fiber 的基本概念,還有一些可以應用的方式。
今年的 RubyKaigi 比去年提早不少,作為 Ruby 開發者最大的盛會,今年也不意外的延續去年探討 Ruby 3 的可能性跟更多 Ruby 的深度應用。也因次,不意外的讓大家都聽的似懂非懂,而且還讓我感覺一年比一年的難度更高。
總之,來看看今年的 RubyKaigi 吧!
這是很多年前的事情了,當時看到別人的 Chrome 竟然會說話,讓我震驚了很久。但是花了很多年都沒有找到要怎麼做,不過最近因為一些關係,我終於知道了他的秘密!
前面幾篇文章已經把所有關於 Ruby 和資料庫都設定完成,最後一個階段就是要把 Nginx 設定好,並且讓 Let’s Encrypt 可以正確的被設定,讓網站支援 SSL 功能。