转载自:http://www.handaoliang.com/article_39.html
一、什么是NodeJS?
第一眼看到这个词,估计你和我一样,以为它不过是一个JavaScript框架吧?如果是,那么首先恭喜你,说明你的思维是正常的。其次鄙视你:凭什么带JS的就一定是JavaScript框架?你丫做技术的吧?最看不起你们这帮做技术的了,跟姓韩的那谁似的,没一点文化。
生活经验告诉我们,牛人往往都不怎么正常,正常人往往都成不了牛人。比如说NodeJS的发明者,这家伙就曾叫嚣说:其实JavaScript更适合做服务器端的并发编程。估计很多人听到这话都笑了,嗯,原谅我的可耻,我也笑了。令人欣慰的是上帝没有笑。当年上帝说要光,于是就有人脱了个精光。今天,上帝说我相信这个人能成,于是这个人还真成了,他弄了这么个东西:NodeJS--基于V8引擎的,使用事件驱动模型而不是复杂的多线程来获得可伸缩性,类似Ruby的EventMachine和Python的Twisted的轻量级WEBServer。
是不是很有意思?这意味着什么我想大伙都清楚吧?嗯,如果这东东真的可用,那就是说,以后前段后端都可以都用JavaScript来编程了,这对于JS程序员来说,真是一个莫大的福音,因为你们再也不用看着那帮做后台的孙子的脸色干活了,可以翻身做后端了。
好,废话到此,那接下来就请跟着我,开始NodeJS的探索之旅。
二、安装!
安装前先从NodeJS的官方网站下载其源代码:
- [root@www source]# wget http://s3.amazonaws.com/four.livejournal/20091028/node-v0.1.15.tar.gz
- [root@www source]# tar xzvf node-v0.1.15.tar.gz
- [root@www source]# cd node-v0.1.15
安装NodeJS很简单,一般情况下,Linux下常用的三步走即可。但需要注意的是:NodeJS需要2.3以上版本Python的支持,否则安装无法继续。
打开tools/waf-light,看到如下代码:
- #!/usr/bin/env python
- # encoding: utf-8
- # Thomas Nagy, 2005-2009
- # ...
- import os, sys
- if sys.hexversion<0x203000f: raise ImportError("Waf requires Python >= 2.3")
从以上代码我们知道,在安装脚本中,在Python脚本的头部指定了#!/usr/bin/env python,这就使得如果你的系统安装了自带的Python程序,则有可能由于版本不够高而无法安装。比如我的系统,是把Python2.5安装在了/usr/local/python252,同时未删除系统自带的低版本Python,此时如果configure,则会出错。
好吧,那我们建一个软连接:
- [root@www source]# sh
- [root@www source]# cd /usr/local/sbin/
- [root@www source]# ln -s /usr/local/python252/bin/python2.5 python
- [root@www source]# python
- [root@www source]# exit
此时执行的/usr/bin/env python,即可使用我们自己编译的Python。
PS.直接建软连接就可以了,这里之所以到sh环境下,是为了看一下sh环境。
执行configure,安装nodejs:
- [root@www source]# ./configure --prefix=/var/iapps/nodejs
- [root@www source]# make && make install
三、初次试用:
一切顺利,安装完成,写个脚本试试:
- #!/var/iapps/nodejs/bin/node
- var sys = require("/sys.js"), http = require("/http.js");
- http.createServer(function (req, res) {
- setTimeout(function () {
- res.sendHeader(200, {"Content-Type": "text/plain"});
- res.sendBody("Hello,This is Laohan(www.handaoliang.com)!");
- res.finish();
- }, 2000);
- }).listen(8000);
- sys.puts("Server running at http://127.0.0.1:8000/");
我相信,对于JavaScript程序员来说,这语法真是太熟悉了,除了第一、第二行之外。无论如何,我们要开始我们的梦想之旅了,那么接下来我们将example.js设置成可执行并运行它:
- [root@www source]# chmod +x example.js
- [root@www source]# ./example.js
此时屏幕显示:Server running at http://127.0.0.1:8000/
访问:http://127.0.0.1:8000/,如果看到页面输出:Hello,This is Laohan(www.handaoliang.com)!,那么恭喜你,安装成功了,接下来就需要发挥你自己的聪明才智,去实现各种强大的功能了。很激动人心吧?
WebSocket and Socket.IO