论坛首页 编程语言技术论坛

报名了: 本周末学习用Ruby写基于事件的异步服务器

浏览 12932 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-06-01  
报名报名!!非常感兴趣...

ruby/rails 基本都属于入门,HTML5也非常有兴趣~

Http Streaming 一直要在项目中用, 现在用的是pushlet解决方案

这回来试试 WebSocket
0 请登录后投票
   发表时间:2011-06-01  
knwang 写道

 

 

  • Ryan Bates的Faye视频: http://railscasts.com/episodes/260-messaging-with-faye
  • Mike Subelsky的HTML5教程,其中1-7是画图和动画, 8是Web Scoket: https://github.com/subelsky/html5tutorial/blob/master/tutorial.html

 

 

Mike Subelsky的HTML5教程 的教程非常棒!!!

0 请登录后投票
   发表时间:2011-06-03  

几天没来, 没看到大家的回复。。 这个活动已经结束是在上周末(5/28)进行的。 

 

我就在这里总结一下,因为大家基本上是独立开发的, 我就主要讲下我的经验

 

开始的时候我花了很多时间搭配Faye的后端,按照Ryan Bates的Railscast,Faye的后台服务器是要和web server分开的, 如果一定这样的话对于Deploy在Heroku上面就比较麻烦, 因为Heroku是Rack结构只看config.ru文件的。 我发现其实Faye可以很方便的当作中间件(middleware)来用, 只要把这个加在Rack/Rails/Sinatra的配置文档里就好了

 

use Faye::RackAdapter, :mount => '/faye', :timeout => 45

 

然后 /faye 就会被引导到faye后台。 

 

有点注意的是Faye要求服务器是Thin, 所以本地跑的时候不能用"Rails Server" 或者 Shotgun等等, 而要用

 

rackup config.ru -s thin -E production

 

当然要装相应的gems. 

 

蛇的控制我是参照了Paul Jensen的代码。。 我把他的前台Javascript重新模块话了下, 建立了几个模型更好的适应多蛇的游戏。 画图用的是HTML5的Canvas. 协调同步这方面我是捕捉键盘指令后立即把本地的状态通过Faye的web client (javascript code)通过Faye后台发到各个客户端, 这些客户端通过Javascript的代码其实也是实现反应器的模式, 一旦接到更新的数据立刻本地更新重画。 我的代码里面设置了每1/10秒更新,但很容易改。 

 

Faye的客户端运输协议支持其实非常强大,Faye会依照这个顺序根据你的客户端选择

  • Persistent connections using WebSocket 
  • Long-polling via HTTP POST
  • Cross Origin Resource Sharing
  • Callback-polling via JSON-P

 

最后,我的代码在这里。 大家可以看看,下来到本地运行。 我实现了红绿两条蛇对打。玩的时候要同时开两个窗口, 然后在一个里面点"Run my snake", 在两个窗口例可以同时看到蛇开始动了。 在另一个窗口里面也点"Run my snake"就会每个窗口里面出现第二条蛇。 当然游戏开始的程序可以做的在好点, 比如一个人坐下等待,两人都确认后游戏在开始。。 这次就没每时间弄了。 主要的代码在snake.js里面,我建立的模型应该很容易扩展到多于两条蛇的情景。欢迎继续开发。 

 

因为时间有限,肯定Bug多多, 谢谢提交补丁。 有问题我会尽力回答。 

 

 

 

 

 

 

0 请登录后投票
   发表时间:2011-06-03  
HTML5确实很强大, 看这里有只用HTML5实现的网页游戏
http://playbiolab.com/


witcheryne 写道
knwang 写道

 

 

  • Ryan Bates的Faye视频: http://railscasts.com/episodes/260-messaging-with-faye
  • Mike Subelsky的HTML5教程,其中1-7是画图和动画, 8是Web Scoket: https://github.com/subelsky/html5tutorial/blob/master/tutorial.html

 

 

Mike Subelsky的HTML5教程 的教程非常棒!!!

 

0 请登录后投票
   发表时间:2011-06-03  
knwang 写道
HTML5确实很强大, 看这里有只用HTML5实现的网页游戏
http://playbiolab.com/


witcheryne 写道
knwang 写道

 

 

  • Ryan Bates的Faye视频: http://railscasts.com/episodes/260-messaging-with-faye
  • Mike Subelsky的HTML5教程,其中1-7是画图和动画, 8是Web Scoket: https://github.com/subelsky/html5tutorial/blob/master/tutorial.html

 

 

Mike Subelsky的HTML5教程 的教程非常棒!!!

 

恩~ 这个玩过,   开头的动画效果相当震撼!!!

0 请登录后投票
   发表时间:2011-06-06  
期待下次活动。
0 请登录后投票
   发表时间:2011-06-13  
不错的学习机会,希望以后多多组织。
0 请登录后投票
   发表时间:2011-06-16   最后修改:2011-06-16
knwang 写道

 

异步服务器:

客户1:我要找xxx资料

接线员: 知道了。挂电话吧, 找到我给你打回去 。 。。 那谁(后台服务),帮我找xxx

 

 

0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics