跳到主要內容

文章

目前顯示的是 六月, 2011的文章

[分享] NodeJS 如何使用EventEmitter 自訂事件

NodeJS裡面,其實對於EventEmitter 這個物件還蠻陌生的,甚至不知道它到底可以幫我做什麼。

其實它的功能主要可以讓事件觸發更為彈性。在一般瀏覽器當中Javascript 事件綁定通常使用addlistener,通常觸發事件範圍會有限,像通常使用的事件綁定,click, hover, focus, blur...,但是當我們想要自訂個觸發點為'explode',就會受限於此,因此EventEmitter ,這個物件就誕生了。

它的出現可以讓物件繼承EventEmitter ,用來綁定、觸發事件的發生點。畢竟NodeJS是一個後端的程式,需求通常會比前端的類型多很多,就來看看一下實際範例會怎麼使用。

測試程式碼:
var EventEmitter = require('events').EventEmitter, bomb = new EventEmitter(); console.log("bomb event binding"); bomb.on('explode', function() { console.log('BOOM!'); }); console.log("bomb 'explode' event trigger"); bomb.emit('explode');

[教學] 使用forever 監控NodeJS程式. Use forever watch nodejs program.

NodeJS裡面最常遇到就是程式流程異常,導致整個程式毀掉,而這個結果小則導致跳出例外處理,大則變成整個NodeJS異常關閉。如果是一個已經上線的程式,怎麼可以讓這種事情發生呢!而且整個監控無法開啟多個process來處理,每次希望做個測試,都需要先把正在執行的process關閉(kill process)。

其實我的需求很簡單:

能夠讓NodeJS程式背景執行同時能夠執行數個NodeJS程式當程式當掉能夠自動重起

因此找到了一套npm的cli 工具 - forever,由Charlie Robbins所建立的Open source 專案,目前這個監控工具也使用於nodejitsu cloud service,所以理論上可以放心使用,大膽的測試,畢竟是open source,如果覺得不符合自己預期,可以直接修改程式碼。

[分享] 為何採用NodeJS實做Comet技術

Comet簡介

Comet,一種技術上的理念,對於http 1.0協定來說,並沒有雙向這回事,許多結果都必須等待,等待,不停的等待。現代人最受不了的就是等待,連loading 都要有GIF 轉轉轉打發時間。

因此我們需要開通一個可以長時間等待(long polling),等到資料有變動的時候立即給予回應(response),接著再繼續等新的回應,重點在於此通道永遠不中斷

這樣子會比較節省資源嗎?這大概是第一個最主要的思考問題,介紹一下歷史的演進:

[分享] 微軟將協助NodeJS移植到Window平台.

天啊!微軟真的要加入開源戰局了嗎?


目前許多微軟的舉動都朝向協助開源專案,例如好一陣子的『NEW OFFICIAL JQUERY PLUGINS PROVIDE TEMPLATING, DATA LINKING AND GLOBALIZATION』,到目前的協助NodeJS移植計畫。微軟雖然嘴巴上什麼都要賣錢,但是變相作法就是『協助開源』?

回到正題,NodeJS環境架設採用Linux指令才有辦法架構,目前在Windows底下都只能藉由Cygwin打造NodeJS環境,雖然可以使用Windows Server架設NodeJS,但是會讓效能大打折扣。因此微軟與NodeJS交涉,協助移植NodeJS到Windows平台執行。

根據NodeJS 官方Blog指出,未來NodeJS的服務將會出現於Windows Server 2003和微軟的雲端服務Windows Azure,而執行的方式將會是原生的NodeJS服務,而不再藉由cygwin建立環境,未來將會有機會看到node.exe。

[教學] 利用Fiddler開發Facebook apps

開發Facebook apps的時候最常遇到的問題就是,Facebook API Key只能綁定在某個Domain name底下,當然對於安全性考量,毫無疑問這是一定要的。但是對於我們開發需要使用開發機,又要測試的時候,就會造成困擾。
當然高手就是不一樣,會自己去設定HOSTS,更強一點的就自己再架設個DNS server來解決這個問題,可是對於我們這種半殘的碼農,以上都是屬於高手的世界,我們沒有辦法去體會。
別擔心,Fiddler為你解決這個問題!!!


Fiddler是MicroSoft利用.NET開發的軟體,可視為單機的network proxy,MicroSoft並沒有強力的推薦這套軟體,不過我們還是很清楚微軟其實很佛心來的。
下載並安裝Fiddler http://www.fiddler2.com/fiddler2/version.asp 請先安裝.NET以提供fiddler執行

2011年永不放棄,半年回顧!

永遠記得,什麼叫做心靈的悸動,退伍之後第一次如此熱血,三個人成團出發直接環島旅行,沒有路線,沒有事先規劃,更不用說之前的練習了。這是我第一次遠途長征,也是第一次體會漫無目的旅行的痛快。

那次的環島,讓我重新認識了台灣這個寶島。更重要的是讓我瞭解一件事情,就如同練習曲所說『有些事現在不做,以後也不會做了。』時光飛逝,進入工作職場後,開始進入忙碌的阿鼻地獄(?)[冷笑],忙到只剩下嘆息,忙到閒下來空虛的思緒。

決定要改變自己,找回最初的初衷,跟自己講『走,騎車吧!』

還記得車行老闆跟我說:『玩車,就要玩得跟別人不一樣!』,因為如此從2011年3月,入手了自己的第一台公路車,為期每週固定的踩踏之旅。

第一次的目標就是『2011年永不放棄 - 極限挑戰300k』
在莊老師帶領下,第一次有支援車跟著一起行動。
沿路上補給當然不能少,身經百戰的莊老師提醒我們許多注意事項。

[分享] Windows 底下使用Dotcloud 服務。 Use dotcloud service on windows.

官方網站 說明文件

Dotcloud 第一次接觸是經由同事介紹,Deploy的方式十分直覺,而且可以搭配Git 指令,將已經commit 的資料全數上傳到Dotcloud 的服務當中,Dotcloud最方便的地方就是提供了許多Service,讓懶得建置環境的我,可以直接測試新的服務,體驗開發的痛快感。

可以先天卻有幾個限制
1. 必須使用command line
2. 這些指令幾乎只能在linux執行
而我患有先天linux智能不足症候群,因此Windows底下,無論如何都要給他建立起來。

[分享] Blogger 開放行動服務範本

前幾天用手機在看自己文章的時候,還深深厭惡Blogger在手機上的View,今天看到Blogger正式開放Google行動服務範本,這則消息就趕快開起來使用看看。


進入Blogger設計版面後,選擇電子郵件及手機號碼。

選擇,是,請在行動裝置上顯示行動版的範本。
接著捲到頁面最底下按下儲存,完成開啟手機瀏覽介面了。
趕快開起來看一下我的手機看一下新版面的感覺。


真是太感動了,如此一來就可以跟Tumblr的手機瀏覽感受相同,Google 就甘心耶!~


[教學] nginx 設定 proxy server 用於node.js app. Set ngnix proxy server.

最近使用NodeJS開發程式,但是每次的網域都非常的醜,要使用xxx.xxx.xxx:8000,後面一定都要加上port號,以下解說如何在nginx 底下設定proxy 。

環境:
Ubuntu server 11.04
Nodejs 0.4.0
nginx

PS. 假設大家都已經學會如何使用Node.js,以及設定Nginx,操作linux