簡體   English   中英

使用帶Nginx和Unicorn的Websockets的Rails?

[英]Rails using Websockets with Nginx and Unicorn?

我正在考慮使用Rails實現國際象棋(需要websockets),並在生產部署中使用Nginx作為一堆Unicorn進程的反向代理。

在考慮如何完成這項工作時,我得到了以下問題:

據我所知,websockets是一個持久的連接。 因為一切都通過反向代理Nginx,Unicorn工作進程究竟會如何維護到客戶端瀏覽器的websocket連接? Nginx會維護每個瀏覽器websocket連接到哪個Unicorn進程的狀態並充當一種中介嗎? 在Unicorn進程中保持持久的websocket連接會阻止整個工作進程嗎?

是否有推薦的方法使用Rails實現國際象棋(使用websockets)?

連接Unicorn的同步處理和使用nginx的異步傳遞意味着nginx方面的一些邏輯對我來說似乎至少很尷尬。 最多 - 不可能。

有一個關於Private Pub gem的Railscast使用Thin webserver。 它更適合這項任務:它是異步的,它能夠處理許多基於事件的IO的並發請求。 所以我建議你用Thin替換Unicorn或者並排安裝Thin。

Puma網絡服務器也可能是一個選項,但是,我無法提供更多信息。

nginx不會做websockets。 你確定你不能用AJAX做到這一點嗎? 如果你真的需要推送功能,你可以嘗試圍繞Comet方法構建的東西: http//en.wikipedia.org/wiki/Comet_ (programming)

Faye是實現鐵軌彗星的一個非常好的寶石: http//faye.jcoglan.com/

暫無
暫無

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

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