代码改变世界

mochiweb 源码阅读(一)

2012-07-09 23:51  rhinovirus  阅读(9064)  评论(11编辑  收藏  举报

  博客园的朋友们,这次又有个机会让你们了解Erlang这门不错的语言,赶紧跟随我的步伐吧,抛开你现在拥有的,买本Erlang书,或者下本电子书,开始Erlang的世界吧。这次又是新的征程,让我们来了解mochiweb这个不错的http服务器。

  这次的标题修改为源码阅读,而不是源码分析,感觉自己还没到源码分析的那个水平吧,所以称做源码阅读更合适一些。这次我希望自己不再是单纯的看代码,还是那句话,多动手吧,看会了,自己写未必写的出来,所以多尝试写一些实例代码。

  好了,回到今天的正题吧,之所以选择 mochiweb,个人感觉是这个项目还是Erlang入门必看的项目吧,许多大牛也推荐新手去看看,所以我还不犹豫的选择了这个项目。我们来具体看下吧。

  这里给出官方的下载地址:https://github.com/mochi/mochiweb

  介绍如下:MochiWeb is an Erlang library for building lightweight HTTP servers.

  MochiWeb是一个构建轻量级HTTP服务器的Erlang类库。

  The mailing list for MochiWeb is at http://groups.google.com/group/mochiweb/

  上面是邮件列表地址。

  首先,我们下载代码:git clone https://github.com/mochi/mochiweb.git

  这边插一句,如果大家学Erlang,建议还是到 Linux环境下,这样其实也是能学到不少知识,毕竟现在市面上主流的服务器都是Linux,所以如果你现在还只是会在Window下的这一套,那就来到Linux下学学吧。

  好了,下载完代码,我们可以看下官方介绍有这么一段话:

  To create a new mochiweb using project:

    make app PROJECT=project_name

  To create a new mochiweb using project in a specific directory:

    make app PROJECT=project_name PREFIX=$HOME/projects/

  我们来创建个example:

  make app PROJECT=mochiweb_example PREFIX=$HOME/workplace/

  如下图:

  

  这里使用的是 rebar 来创建,管理项目,还是比较方便的,之前已经介绍过这个工具了,如果你是第一次见,可以参考下这篇文章:Erlang构建工具,这里使用的是模板支持,代码如下:

  ./rebar create template=mytemplate

  而我们看下Makefile的app命令,如下图:

  

  而 模板文件位置如下,下一次有机会再给大家详细介绍下,关于模板的使用:

  

  接下来,我们编译,运行下 mochiweb_example 这个例子吧,生成的例子提供了个快速启动的脚本文件 start-dev.sh,代码如下:

#!/bin/sh
# NOTE: mustache templates need \ because they are not awesome.
exec erl -pa ebin edit deps/*/ebin -boot start_sasl \
    -sname mochiweb_example_dev \
    -s mochiweb_example \
    -s reloader

  我们可以用终端,快速的跑起例子,打开终端,进入到这个目录,输入:

  make,然后输入

  sh start-dev.sh,就可以了,如下图:

  

  接下来,我们可以访问浏览器:http://localhost:8080/

  运行结果如下图:

  

  好了,这个简单的例子成功的运行起来了。

  今天就到这,这一篇我们简单介绍了mochiweb以及如何创建例子,运行;希望大家能够动手把代码下下来,尝试运行,如果你遇到什么问题,欢迎留言,我会尽可能的帮助大家解决问题。

  最后,如果这篇文章带给你乐趣,希望你能轻轻动下鼠标,推荐下这篇文章,非常感谢,我在下一篇文章等着你哟。