2013-03-02 57 views
1

我已經建立了一個小系統,在客戶端上使用dnode,shoe和browserify,並在服務器端使用NodeJS和dnode/shoe。我想知道是否使用dnode(RPC)作爲實時Web應用程序的唯一協議是個好主意。Node.js實時與DNode /鞋和所有關於負載平衡的東西

讓我們看看DNode或任何其他RPC接口的優點。我喜歡能夠遠程調用功能(RPC)。它確實勝過Ajax,因爲您可以獲得一致的從客戶端到服務器和服務器的通信接口。我還打賭,由於涉及Ajax的HTTP開銷,您在Ajax上獲得了一小部分的性能。

但是,使用RPC,您必須處理服務器上的負載平衡和客戶端連接。但是這與任何websocket實現一致。但是,在其他websocket實現中,您有一個更傳統的基於事件的系統,其中客戶端偵聽來自服務器的事件並響應這些事件。我嘗試使用EventEmitters來複制這種接口,但這太糟糕了,並且我一直收到太多處理程序的警告。啊!

我期待實現一個輕量級,乾淨的接口,我可以用它來開發我的應用程序。感覺健壯,能夠擴展到許多客戶。它需要感覺紮實。

我不太確定我的問題是在寫這篇文章。我的任務是更新我編寫的代碼庫,以便連接不會丟失,並且總體上更加健壯。我想我只是渴望諮詢或諮詢我的申請。有人願意與我討論這個話題(RPC和實時網絡應用程序)時面對面嗎?

感謝您的閱讀。

回答

0

我一直在研究一些與我看起來相同的主題,而一些RPC庫很酷,但對於大型應用程序來說並不實用。我實際上是從NowJS開始的,意識到這是一個死去的項目,搬到了DNode/Shoe/Browserify,最後轉移到SocketStream,試圖將一些骯髒的工作轉移到一個有統一目標的項目上。我真的不想重寫別人已經在這個主題上做了什麼,並且socketstream使這很容易。回到你的問題,正如你可以在他們的頁面上看到的,SocketStream使用粘性會話。這是一個很大的假設,但目前可能無法在沒有進一步發展的情況下得到解決。我提到它的原因是,他們談論他們正在努力的一些事情,只要擴大規模。我們可能值得閱讀或向開發人員伸出援手,看看你是否可以與他交談。祝你好運!

+0

太棒了!這是一個很好的回覆!我剛剛看完了關於SocketStream的Barne談話,並且讓我對框架感興趣。我需要看看它是如何工作的。非常感謝! :) – Sam 2013-03-02 06:49:32

+0

沒問題。很高興我能指出你朝那個方向發展。另外請看一下這篇關於如何使用RabbitMQ在後端調整NodeJS的有趣文章:http://blog.cloudfoundry.com/2013/01/31/scaling-real-time-apps-on-cloud-foundry-使用節點-JS-和-的RabbitMQ / – JimTheDev 2013-03-02 20:30:42