我正在實施一個客戶端 - 服務器API與長作業處理時間(在某些情況下,分鐘的順序)。一些API調用很短,並立即作出響應,但雙門轎車需要一些後端處理。我使用node.js作爲Web服務器。我的當前implementaion是如下 -異步RestFul vs Websocket
客戶端(瀏覽器)< - >節點的js < - >發動機
發動機是一後端處理,其處理的每個作業(C++代碼)。所有的交互都是http。現在,傳統上我會將異步ajax/restful請求和短作業作爲同步restful請求執行長作業。
我將不得不爲長處理作業(處理大量數據)的狀態更新 - 喜歡中間結果,完成百分比等
我在的WebSockets loolking作爲替代(我是比較新的這)。這裏是我的問題 -
- 我應該看看websockets的長工作,而不是異步restful api(我想避免處理客戶端超時,長輪詢等)?
- 如何將所有的請求移動到websockets(爲什麼要休息一下呢?)
- 一般而言,任何實現此架構的最佳實踐。 (之前,我從事與web服務器和引擎之間的交互的項目,作爲與自定義命令的簡單TCP連接。)
注意: - 我不擔心跨瀏覽器支持(尤其是舊版本)現在。
像下面的建議一樣,nodejs和使用socket.io的websockets很好。如果瀏覽器不支持Websocket,它會落入另一個協議,但仍然有效。我認爲這將比尋找一個C++解決方案更爲強大。 – coffekid 2014-05-12 18:26:37