- 浏览: 88325 次
- 性别:
- 来自: 香港
最新评论
-
ddddddddd:
忘记说谢谢了。谢谢您共享这个插件。帮了我大忙
Rails plugin: i18n -
ddddddddd:
我下载并使用了你的插件,感觉效果很好,不向其他同样功能的那样庞 ...
Rails plugin: i18n
前文研究過利用 Flash XMLSocket 作即時通訊的 Juggernaut,雖然它可以簡易的做到即時通訊,但使用非 HTTP 通訊和非開放標準這兩點很讓人在意,有滿有其他的解決方案?
ActiveMQ 的 AJAX Client
在思考的過程中,發覺我想做的不正是使用消息通訊的軟件嗎?這類軟件己經有一個很好的 Model:Messaging Oriented Middleware(MOM)。接著我跑到 Apache ActiveMQ 的網站研究有沒有可用的方案。果然,在 AMQ 的源碼中就有一個 AJAX 的 messaging client。
ActiveMQ 是開源的 JMS 專案,技術成熟而且被很多其他產品應用。它的 AJAX Client 利用連接 Server 上的 Messaging Servlet ,由Servlet 再向 AMQ 發送訊息。等等,AJAX 的 A 不就是非同步的意思嗎?怎樣用 AJAX 做到即時通訊?答案是結合 Poll 和 AJAX。Browser 首先用 AJAX 連接到 Servlet (Poll) ,如果有訊息就會即時把訊息返回,如果沒有訊息就會讓 client 等待,直到指定的時限(約30秒、比一般 browser 和 socket 的 timeout 短 )。每個 AJAX request 完結後 client 會立即重試,這樣 client 便可以得到有如 push 的效果了。比起一般 Server Push 的 Comet ,這種做法更符合一般 HTTP 的 Request - Response 模式,由於與普通 HTTP 無異,一般的 Firewall 和 Browser 也支援。
在 Rails 中的 AJAX Poll
ActiveMQ 的方法雖好,但它是一個 Servlet ,我們難道要另架一台 Java Application Server?就算不介意架這台 Server ,還要用 proxy 之類的方法解決 AJAX 不能 Cross-Domain 的問題。有沒有方法只用 Rails 就做到這種 AJAX Poll 的效果?
答案是 No and Yes。用普通的方法 Rails 不能做到以上效果。Rails 是一個單線程的環境 ,也就是說全部 Request 也由同一支 Thread 控制。在以上情境中「叫 Client 在 Request 中等待直至有信息」等於叫整個 server 停下來。幸好,Rails 單線程不等於 Server 也必須單線程。Adam的 Comet with Rails + Mongrel 中示範了怎樣用自訂 HttpHandler 讓 Rails 可以持續地跟 Client 連接。我們可以在 Client Side 呼叫 AJAX,在 Mongrel 的 HttpHandler 中把這些 Request 轉成向 MOM 的呼叫,如下圖。
理論差不多了,看看怎樣實作吧!
在 Rails 和 Mongrel 作即時股票報價軟件
ActiveMQ 的 Web Demo 包括一個股票報價軟件。它分成 Consumer 和 Producer 兩部份,Consumer 是收取服價資料的 Client ,Producer 則是發報股價的 Server。我們的目標就是要在 Rails 實作這個軟件。
发表评论
-
Code Geass CD入手
2007-08-23 14:12 1194終於入手了,Code Geass 的 OST2 和 モザイ ... -
Kaomoji (顔文字, emoticon) plugins for Rails
2007-08-23 16:15 1143Nothing big, just a little toy ... -
調查發現八達通易辦事轉賬系統一直有問題,涉款370萬元
2007-07-27 15:34 1106八達通承認易辦事7年扣錯錢 Via 明報即時新聞 早前,八達 ... -
Ruby on Rails plugin: QRCode
2007-07-23 14:42 1511I come across this page, a java ... -
[轉播] 呼籲:抵制7月25日明光社賣旗活動
2007-07-20 18:07 1144原文 @ 無神論者的巴別塔 慈善,只為幫助有需要的弱勢社群 ... -
Using AjaxMessaging to create a chatroom in 5 mins
2007-07-07 16:41 1159中文版: 用 AjaxMessaging 在五分鐘內造一個 c ... -
用 AjaxMessaging 在五分鐘內造一個 chat room
2007-07-07 17:03 1351English version: Using AjaxMess ... -
AjaxMessaging - bring realtime messaing to Ruby on Rails
2007-07-02 18:22 1362Proudly present my new plugins ... -
Eclipse 發表 Europa
2007-07-02 02:56 1084Eclipse Europa 是今年的 Eclipse 新版本 ... -
更新: Ruby on Rails plugin i18n
2007-06-29 16:59 1270讀了 Takol 的 【ROR開發筆記】MultiLingua ... -
使用 Rails 和 Juggernaut 作即時通訊
2007-06-27 15:33 1503AJAX 在 AJAX 出現前,傳 ... -
Rails plugin: i18n
2007-06-06 14:23 1401An update from mod-i18n module. ... -
全文搜尋 (Lucene 和 Ferret)
2007-05-20 17:45 1569搜尋器改變了人們的習慣。當有能力在互聯網上用 0.01 秒的搜 ... -
網摘 20070529 - 因為 Rails 放下其他事
2007-05-29 05:45 892網路與技術 RoR vs. PHP?談 web 開發技術的未 ... -
網摘 20070510
2007-05-10 06:01 900Web 微軟500億美元收購Yahoo!之傳言大拆解 - 與 ... -
Adobe 宣佈開放 Flex 的源碼
2007-04-27 03:43 1003重大消息:四月二十六日,Adobe 宣佈他們將會開放 Flex ... -
Defensive Design for the Web
2007-04-22 14:00 1016Defensive Design for the WebHo ... -
Aptana 繼 RadRails 後再宣佈和 RDT 合併
2007-04-21 16:10 1196Aptana 今天宣佈和 RDT 合併,該公司並會僱請 RDT ... -
20070416 網摘 - 知識+世代
2007-04-16 05:25 943知識+世代 知識+型社會 - 當中學生只懂得使用 Yahoo ... -
Google 發表谷歌輸入法
2007-04-15 02:09 1229之前聽說Google 開放分析一萬億字所得的資料,但那只在英文 ...
相关推荐
Ruby+on+Rails+程序设计深入剖析与范例应用
Ruby+Rails+社交+教程2 - 本资源是一个Rails的教程,教你如何用Ruby的Rails框架开发一个社交网站,实现用户的关注,动态,私信等功能。
Ruby+Rails+社交+教程3 - 本资源是一个Rails的教程,教你如何用Ruby的Rails框架开发一个社交网站,实现用户的关注,动态,私信等功能。
Ruby+Rails+社交+进阶教程5 - 本资源是一个Rails的教程,教你如何用Ruby的Rails框架开发一个社交网站,实现用户的关注,动态,私信等功能。
《Ruby on Rails Tutorial》中文版(原书第2版,涵盖 Rails 4) Ruby 是一门很美的计算机语言,其设计原则就是“让编程人员快乐”。David Heinemeier Hansson 就是看重了这一点,才在开发 Rails 框架时选择了 Ruby...
Ruby on Rails Guides v2 - Ruby on Rails 4.2.5
Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 ...
Ruby On Rails中文教材(PDF)
ruby on rails社区网站开发源码
全书共分17章,主要内容包括:搭建ruby on rails开发平台、ruby语言的基础知识(像控制语句、面向对象、数组和块等)、文件处理、数据库持久化、rails控制器和路由、视图模板以及发送邮件和ajax等。 《ruby on rails ...
Ruby+on+Rails快速Web应用开发实战.pdf
ruby on rails对mongodb的操作ruby on rails对mongodb的操作ruby on rails对mongodb的操作ruby on rails对mongodb的操作
本项是使用 React 实现的个人博客,使用了 Redux 做数据管理,后端使用的是 Ruby On Rails 提供的接口,欢迎大家围观! 本地部署 git clone git@github.com:wewin11235/react-blog.git cd react-blog npm install ...
ruby on rails最新版<br/>这是本人精心收集的重要软件
通常使用 RVM 或 rbenv 来安装 Ruby,这里选用 RVM。 $ curl -sSL https://get.rvm.io | bash -s stable 载入 RVM : $ source /home/libuchao/.rvm/scripts/rvm $ rvm -v rvm 1.25.12 (stable) by Wayne E. ...
Ruby On Rails 官方教程,这本书讲解如何使用 Ruby on Rails 框架开发应用,以及如何把应用部署到生成环境。本书使用 Rails 默认的开发工具栈开发了一个完整的社交应用(类似 Twitter)。读完本书后你将掌握如何使用...
本书的目标是成为对“如果想学习使用 Ruby on Rails 进行 Web 开发,我应该从哪儿开始?”这一问题的最好答案。学习完本书的内容之后,你将具备使用 Rails 进行开发和部署 Web 程序的技能。同时你还能够通过一些进阶...
Ruby on Rails中文指南
ruby on rails 教程源码,配合原书使用