百度空间 | 百度首页 
 
查看文章
 
Hemlock--开发多人实时web应用的flash框架
2009-06-30 21:23
Multi-user real-time web 应用目前是一个热门的方向, 如上个月Google Wave的demo就有很酷的real-time gadget demo。这些实时的web应用包括普通的web协同应用,web game, 各种SNS扩展应用及SNS game等。

此类应用前端实现有两种方式,socket/flash或ajax方式。为了达到实时效果,使用轮询的ajax通常占用服务器资源过大,目前逐渐被comet方式代替。服务器的实现通常需要开发者自行实现基于业务的socket server,但自己实现的server通常存在性能及可扩展性的问题,因此实现全部功能需要投入大量的开发精力。

Hemlock是一套适合此场景的可扩展框架。它后端使用XMPP MUC chatroom作为多人交互应用的通道,通过flash长连到XMPP Server上。由于XMPP Server(如openfire, ejabberd等)本身就支持多服务器,因此使用默认的版本就可以支持上十万的并发,如果稍加优化,同时支持上百万用户也不会有太大问题。

比如下图是用Hemlock实现一个多人聊天的实时白板程序,真实demo
(图片来源:Fancy a draw? Hemlock in action)

另外官方网站还有一个football3s多人足球游戏的demo。

安装Hemlock的文档可参阅http://hemlock-kills.com/learn,文档是以ejabberd为例的,经Tim验证也可安装在openfire/Linux上。唯一需要注意的配置是SERVER必须和xmpp domain一致。开发的环境需要用到Flex SDK, Java, Ruby, Rake等。

Hemlock底层使用jive的XIFF library, 在XMPP的基础上做了多人交互数据包的封装,并且大部分编程都可以基于事件机制,比较容易上手。大部分Web Game都有生命周期短,开发周期要求短的特点,因此使用Hemlock可以节约大量底层开发时间,有兴趣的朋友不妨一试。

类别:Xmpp | 添加到搜藏 | 浏览() | 评论 (1)
 
最近读者:
 
网友评论:
1
2009-07-22 09:57 | 回复
不知道兄台是否试过hemlock + openfire(windows),
我运行它的demo始终有错误,不知道哪里配置错了,请赐教。
at com.mintdigital.hemlock.clients::XMPPClient/handleCustomConfigResponse()
at Function/http://adobe.com/AS3/2006/builtin::apply()
at com.mintdigital.hemlock.conn::XMPPConnection/handleIQ()
at com.mintdigital.hemlock.conn::XMPPConnection/onDataReceived()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at org.jivesoftware.xiff.util::SocketConn/onSockRead()
at org.jivesoftware.xiff.util::SocketConn/onRead()
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu