跳到主要內容

文章

目前顯示的是 四月, 2013的文章

[閒聊] socket.io scaling out solution

socket.io scaling out solution socket.io 一直以來都是在 node.js 許多 module 當中,受人注目的一個項目,自己也不例外,從 socket.io 6 進展到目前 socket.io 9 都一直持續關注他的發展。
長期以來這種 Comet 連線模式的環境,最讓人質疑的部份有幾個,
server extend (scaling issue)message lost *. user connection 首先拿 server exetend 來說,最簡單的解法,同時也是 socket.io 支援的模式,
設定 socket.io redis config使用 load balancer like 的機制將 socket.io 服務視為一個 Application 因此就可以如下圖,所表示



http://blog.davidmisshula.com/images/4.png

使用者透過連線到 load balancer 之後,透過 load balaner 將資源分散到每個不同的 Application 機器,每個機器最終將會去向同一個 DB (SQL/ NoSql) 機器取得 session, user, message … 資訊回到應用程式當中。
讓每個使用者的資訊不致於斷線,在這邊 socket.io 預設的使用方式就是採用 redis。
這種連線方式其實有幾篇文章已經說明的相當清楚,
http://blog.cloudfoundry.com/2013/01/24/scaling-real-time-apps-on-cloud-foundry-using-node-js-and-redis/http://blog.davidmisshula.com/blog/2013/02/04/configure-haproxy-to-scale-multiple-nodes-with-stickiness-and-ssl/ 這邊的方式都是採用如同上述表示的規劃架構,可以達到 socket.io scaling 的機制。
當然聰明的各位也想到了,有需求就會有解決方案,因此也有廠商提供了類似的解決方案,
https://www.firebase.com/http://pusher.com/ 這兩間廠商都是提供 real time web…

[推薦] JavaScript 前後端學習書籍

JS 道現在已經變成一種顯學,從以前不太重要的瀏覽器端,到現在從瀏覽器(瀏覽器也只能夠使用 JavaScript 執行),到後端程式語言 Node.js ,甚至是 mobile 上都可以使用 JS 進行程式開發,因此這個語言變得越來越重要,也越來越為更多人重視。

身為網站開發者,是需要好好學習一下這個語言的奧祕,

首先從瀏覽器端,一開始對於我自己所困擾的是什麼是 AJAX,翻遍許多書籍之後,終於找到一本比較能讓自己所了解的,

前端部分:

[IMG]http://i.imgur.com/RobJpDt.jpg[/IMG]
Bulletproof Ajax

這本書裡面講解 AJAX 如何與伺服器互動,同時講解瀏覽器到底 DOM 是什麼東西, DOM 如何運作,到最後面漸增強的部份都有做簡單的講解,十分適合初學者入門學習。

當然這本只是概念,如果需要更深的層次,每個名次都有一本專門的書可以提供參考,會推薦 Bulletproof Ajax 給初學者,也是因為他的輕薄,試著從這種簡單的書,開始進入 AJAX 的世界。

[IMG]http://i.imgur.com/gXSJOfC.jpg[/IMG]
JavaScript for web developers

當開始對於瀏覽器,DOM,ajax 有了基本概念之後,接著可以試著看這本 JavaScript for web developers ,這本書相對前一本就厚重許多,裡面從 JS 的每個屬性開始講解,到 funciton, closuure, timer 等一一解釋,甚至於瀏覽器中的事件(Evetn) 都有相當詳細的說明,裡面解釋了許多 JavaScript 在瀏覽器執行時,可能會發生的問題以及避免方式。

當真正深入開發產品的時候,可以從這本書籍裡面,避免掉許多細節問題。

[IMG]http://i.imgur.com/dPVTj1R.jpg[/IMG]
JavaScript good parts

這本書籍並不分前後端,只要是寫 JavaScript 的人,過一段時間都可以重新回味一下 JavaScript Good Parts,裡面提供了對於 JS 的見解,對於自己開發的 naming, conviention, logic 這些問題處理上,偶而重新翻一下此書籍,都會有新的體認。

JavaScript good pa…