flash 实时 通信

来源:互联网 发布:信用贷款知乎 编辑:程序博客网 时间:2024/04/29 15:05
 
Hemlock--开发多人实时web应用的flash框架
2009-06-30 21:23
Multi-userreal-time web 应用目前是一个热门的方向, 如上个月Google Wave的demo就有很酷的real-time gadgetdemo。这些实时的web应用包括普通的web协同应用,web game, 各种SNS扩展应用及SNS game等。

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

Hemlock是一套适合此场景的可扩展框架。它后端使用XMPP MUC chatroom作为多人交互应用的通道,通过flash长连到XMPP Server上。由于XMPPServer(如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可以节约大量底层开发时间,有兴趣的朋友不妨一试。
原创粉丝点击