我需要編寫一個Rails應用程序(JRuby),它在後臺與另一服務進行異步通信。每個瀏覽器會話需要一個連接。 (它並不需要是一個開放的TCP連接,但我需要在會話結束後釋放資源。)與後臺服務的通信不是嚴格的請求 - 響應。在任何時候都可以有一條消息從服務發送到Rails應用程序。rails異步通信和xhr輪詢
我也需要實現協議。我該怎麼做呢? Ruby on Rails是否有異步框架(例如Twisted或Node.js)?我只需要一些起點。
我已經在Python中編寫了一個客戶端協議的快速實現。實際上,完整的協議是由我組成的(服務器是用JavaScript編寫的),所以我可以完全改變協議。但是,由於問題的性質,異步性質不能改變。
另外我需要XHR輪詢/ WebSockets,以便將異步更改推送到瀏覽器。有沒有一個寶石/如何/教程?我不能只是將請求設置爲睡眠(資源!)。
如果您想了解更多關於背景的信息: Rails應用程序是一個輔助工具。它與之通信的服務實際上是一個加載和呈現網頁的Firefox加載項。異步特性來自(i)框架,彈出窗口(window.open()
,window.alert()
,...),必須傳遞給Rails應用程序的DOM樹的動態更改,重定向(就像在論壇中擺姿勢之後)等。需要使用JRuby,因爲我需要使用Jena(Java)框架進行RDF處理。
看起來這可能是我需要的。謝謝。 – panzi 2010-12-08 13:03:49