剛出爐的,socket.io erlang server版本,有點小清新
絮言
最近在學習Erlang,順便寫了一個socket.io server作為練練手,感受函數(shù)式/面向并發(fā)編程的好處。
毫無疑問,同樣兼容最新的socket.io spec 1.0。
無論哪一種語言,從頭開始構建HTTP協(xié)議支持,都是很痛苦的,站在巨人肩上,總是可以讓你更專注于業(yè)務。Java社區(qū)可選擇netty,Erlang社區(qū)可以選擇非常輕量級的mochiweb和cowboy等,這里要感謝一下尤日華同學(http://www.cnblogs.com/yourihua/),特別熱心,一一給我們分析了以上兩個http框架的源碼,我等新手獲益良多。就是在其文章的幫助下,開始構建一個socket.io erlang server。
mochiweb,有些歷史,已趨于穩(wěn)定,但目前不支持websocket協(xié)議。
cowboy,模塊/協(xié)議自由替換,使用二進制傳輸基本保證了低內(nèi)存占用和快速傳輸,內(nèi)置非常贊的dispatch URL分發(fā)器,內(nèi)置對長連接的支持,目前使用的是0.6.1版本。推薦使用!
閑話少說,目前已經(jīng)釋出0.1版本,項目地址為:
https://code.google.com/p/erlang-scoketio/
項目介紹
Erlang 版本的socket.io服務器實現(xiàn)
1. 基于cowboy構建
檢出地址: https://erlang-scoketio.googlecode.com/svn/socket.io_cowboy
兼容 socket.io-spec(https://github.com/LearnBoost/socket.io-spec) 1.0
支持xhr-polling/jsonp-polling/htmlfile/websocket/flashsocket等通訊協(xié)議
支持CJK語言,UTF-8編碼下很少出現(xiàn)亂碼
現(xiàn)在可以作為0.1版本釋出,具有一個chat示范
2. 基于mochiweb構建
檢出地址: https://erlang-scoketio.googlecode.com/svn/socket.io_mochiweb
兼容 socket.io-spec(https://github.com/LearnBoost/socket.io-spec) 1.0
僅支持xhr-polling/jsonp-polling/htmlfile等通訊協(xié)議
暫時精力有限,停止更新,假若有需要,可以進一步有償商談
3. 運行一個示范
- 下載示范文件http://code.google.com/p/erlang-scoketio/downloads/detail?name=socket.io.zip
- 在Linux下解壓
- #unzip socket*.zip
- #cd socket.io
- #make
- #sh start.sh
- 打開瀏覽器,訪問http://yourip:8080/index.html
一個實現(xiàn)
這里介紹一個聊天示范,看代碼,很簡單,也很短,才80行。
與Java相比,Erlang代碼顯得少多了。
其它
剛入門,項目代碼寫的有些草;您若慷慨,希望給些指點,謝謝 :))
posted on 2012-10-15 14:57 nieyong 閱讀(3917) 評論(1) 編輯 收藏 所屬分類: socket.io