2013-03-08 68 views
3

我正試圖設計一個系統,它將處理大量數據並向客戶端發送有關其進度的更新。我想使用nginx(謝天謝地,剛開始支持websockets)和uwsgi作爲web服務器,並且我使用zeromq通過系統傳遞消息。理想情況下,解決方案可以用Python編寫,但我也可以使用Nodejs甚至Go解決方案。由zeromq觸發的nginx背後的Websockets?

這裏是我想達到的流程:

  1. 客戶訪問網站,並要求大量數據的處理。
  2. 服務器通過zeromq向另一個進程/服務器[工作人員]進行處理,並回復客戶機請求,說明處理已經開始,包括有關如何與服務器建立websocket的信息。
  3. 客戶端設置websocket連接並等待更新。
  4. 處理完成後,工作人員發送「處理完成!」消息通過zeromq傳遞給websocket進程,websocket進程將消息推送給客戶端。

是我所描述的可能嗎?我想我以爲我可以在皇帝模式下運行uwsgi,這樣它就可以爲web服務器處理一個進程(端口),爲websocket進程處理另一個進程(端口)。我只是不確定我是否可以找到既能接收zeromq消息,又能通過同一個進程管理websocket連接的方法。也許我必須從工人那裏發起最後的websocket推送?

任何幫助/正確的方向指向/潛在的解決方案將不勝感激。任何示例或帶有正確路由的websockets的nginx配置文件的代碼片段都會被讚賞。

謝謝!

回答

2

當然,這應該是可能的。你可能想看看zerogw

+0

謝謝!這很好! – Ethan 2013-04-12 09:06:38