刚出炉的,socket.io erlang server版本,有点小清新

刚出炉的,socket.io erlang server版本,有点小清新

絮言

最近在学习Erlang,顺便写了一个socket.io server作为练练手,感受函数式/面向并发编程的好处。

毫无疑问,同样兼容最新的socket.io spec 1.0。

无论哪一种语言,从头开始构建HTTP协议支持,都是很痛苦的,站在巨人肩上,总是可以让你更专注于业务。Java社区可选择netty,Erlang社区可以选择非常轻量级的mochiweb和cowboy等,这里要感谢一下尤日华同学(http://www.cnblogs.com/yourihua/),特别热心,一一给我们分析了以上两个http框架的源码,我等新手获益良多。就是在其文章的帮助下,开始构建一个socket.io erlang server。

mochiweb,有些历史,已趋于稳定,但目前不支持websocket协议。

cowboy,模块/协议自由替换,使用二进制传输基本保证了低内存占用和快速传输,内置非常赞的dispatch URL分发器,内置对长连接的支持,目前使用的是0.6.1版本。推荐使用!

闲话少说,目前已经释出0.1版本,项目地址为:

https://code.google.com/p/erlang-scoketio/

项目介绍

Erlang 版本的socket.io服务器实现

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等通讯协议
支持CJK语言,UTF-8编码下很少出现乱码
现在可以作为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等通讯协议
暂时精力有限,停止更新,假若有需要,可以进一步有偿商谈

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

一个实现

这里介绍一个聊天示范,看代码,很简单,也很短,才80行。

与Java相比,Erlang代码显得少多了。

其它

刚入门,项目代码写的有些草;您若慷慨,希望给些指点,谢谢 :))

你可能感兴趣的:(刚出炉的,socket.io erlang server版本,有点小清新)