簡體   English   中英

使用NodeJS編寫實時應用程序

[英]Writing Real-Time apps with NodeJS

我期待用NodeJS構建RT網絡應用程序。 來自Rails,我感覺很喜歡NodeJS和Async JS編程。

用Node運行一些實驗,然后當我搜索工具和資源來使用時,我對那里的很多東西感到不知所措。

我在那里發現了許多庫和組件,並且很多人對如何構建大規模編寫和實現的RT Web應用程序感到困惑。

因此,應用程序將使用Express框架在NodeJS運行。

我讀到了關於knockout.js ,一個客戶端庫,提供自動UI刷新等實時內容,我想我可以用jQuery將它與它結合起來。 另外,我找到了socket.io 作者說: Socket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. It's care-free realtime 100% in JavaScript. Socket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. It's care-free realtime 100% in JavaScript. 所以socket.io是關於兼容性的。 backbone.js怎么樣? 它去哪兒了?

有這么多東西,我感到震驚。 我該學什么? 哪些模塊值得研究? 我專注於NodeJS和Express,但大多數書籍/截屏報道都涵蓋了舊版本的nodejs。 所以我正在以其官方API為指導。 現在我在這里詢問你的建議,並以某種方式組織所有信息。 如果我的假設不准確,請糾正我,請指出正確的方向,並隨意建議任何其他可以幫助我學習的模塊。

提前致謝

您可以將node.js服務器端庫(通過npm等...)與所有客戶端(瀏覽器)庫和jquery,backbone,knockout等技術分開...當您考慮它時。 即使socket.io暴露了瀏覽器和服務器之間的持久套接字連接(以避免輪詢)也沒有規定您使用的客戶端技術。

專注於從您的服務器公開一個可靠的web-api( 隨機示例 ),您的客戶端技術可以交換,擴充等......對服務器沒有任何影響。 它們相交的唯一地方就是你正在使用像Jade這樣的視圖技術。 它也是一個選項,有一個純粹的分離服務器只是提供客戶端文件,你的客戶端是一個更厚的JavaScript應用程序(使用淘汰賽,jquery等......)調用一個良好的服務器web api。

有些人試圖統一客戶端和服務器模型 - 例如, 本文使用骨干和節點。 這取決於您使用多少數據來說明這是否可行,但它確實將客戶端和服務器耦合在一起並使服務器有狀態,這可能有缺點(向外擴展,需要親和力......)。 就個人而言,我對那么多魔法(綁定,狀態,同步等等)都很謹慎。 節點就是保持簡單,輕便和快速。 它是一個快速的前端網絡服務器。

我2美分(有些人可能不同意)。 從服務器上的節點開始,然后選擇存儲(mongoDb等...)。 設計一個可靠的RESTful(超媒體)API - 無論客戶端如何都是一個很好的webapi。 然后從一個基本的html / css / js開始,也許是jquery客戶端,並添加諸如knockout等東西......當你擴展你的客戶端技能時。 這將允許您隨着新技術的變化而改變您的客戶端技術(他們將會改變)。

這是一個設計精良的系統的標志 - 能夠替換組件/子系統而無需重寫所有內容:)

希望有助於清理一些霧:)

如果您專注於實時Javascript應用程序,可能需要查看Meteor: http//meteor.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM