2011-06-11 124 views
4

在我最近的將來,我將不得不使用C++後端和web前端(需求)製作一個系統。目前,我對此不甚瞭解。我認爲Frontend會觸發數據傳輸,而不是後端 - 所以不需要Comet類的東西。設計Javascript前端<-> C++後端通信

由於這方面可能經驗不足,所以我非常感謝您對我所做的設計決定的評論。

首先,我不喜歡從C++生成HTML的選項。因此,C++後端將不得不與Javascript前端進行通信。我在這裏看到的最簡單的選項是Ajax。到目前爲止,我認爲它應該沒問題。

通過Ajax與C++後端進行通信意味着後端應該能夠處理HTTP。將後端分離出來可以提供來自HTTP處理功能的實際數據。

在這裏,我看到了Node.js的地方。我對它有了一個概述,這是我所有疑惑所在的地方。

在Node.js上有一個HTTP處理服務器,它將'數據後端'作爲一個Node.js模塊?我認爲,應該沒問題 - 但我不確定我是否真的需要所有這些不同步,所以可能會有一些我不知道的更簡單的選項?你會如何製造這樣的系統?

在此先感謝。

+0

看看您的前端Backbone.js。 http://documentcloud.github.com/backbone/ – Stephen 2011-06-11 05:48:37

+0

謝謝。這是有價值的信息 – Igor 2011-06-11 07:48:18

回答

3

「所有這些異步」並不是Node.js非常難以提供的額外功能。這是一個不同的Web服務視圖,一旦你瞭解了Node.js的工作原理,就像呼吸一樣簡單。例如,我的同事需要一種方法來將C++程序打包爲一個Web服務,但該程序的啓動成本很高,所以他們只想運行一個程序實例,運行在一個循環中,爲所有網絡請求提供服務。 Node.js中的所有內容只用了不到兩個screenful。

包裝爲每個請求調用的單個程序可以在少於十行的Node.js中完成。不要認爲異步性是一件雜事 - 如果你擁抱它,Node.js是非常棒的。這就是說,你可以去CGI路線,並以更加標準的方式來完成,最終的結果幾乎是一樣的。 This可能會或可能不會派上用場。

+0

我喜歡我現在知道的有關node.js的內容。感謝你的回答。大概我會走這條路。至於CGI,我認爲最好在節點上使用更高級別的JavaScript,而不使用CGI C++。 – Igor 2011-06-11 07:26:50

0

您是否考慮過nginx,Apache等CGI/FCGI模塊選項?

如果不是,那麼我覺得從它開始是有道理的。您的模塊將處理數據/ json請求,其餘部分將由HTTP服務器處理。

+0

謝謝,現在我有一個nginx模塊的概述。在這種情況下,「nginx下的模塊」對我來說看起來非常類似於「node.js下的模塊」和node.js上的模塊,它們將用更高級的語言編寫,這是一個優點。你爲什麼認爲nginx選項更好? – Igor 2011-06-11 07:33:03