Ruby on rails 使用WebSocket与Nginx和Unicorn的Rails?

Ruby on rails 使用WebSocket与Nginx和Unicorn的Rails?,ruby-on-rails,ruby-on-rails-3,nginx,websocket,unicorn,Ruby On Rails,Ruby On Rails 3,Nginx,Websocket,Unicorn,我正在考虑用Rails实现chess(需要websockets),并在生产部署中使用Nginx作为一系列Unicorn进程的反向代理 在思考如何完成这项工作时,我产生了以下问题: 据我所知,WebSocket是一种持久连接。既然一切都通过反向代理Nginx进行,那么Unicorn工作进程如何维护到客户端浏览器的websocket连接呢?Nginx是否会维护每个浏览器websocket连接到哪个Unicorn进程并充当某种中介的状态?在Unicorn进程中保持持久websocket连接是否会阻止整

我正在考虑用Rails实现chess(需要websockets),并在生产部署中使用Nginx作为一系列Unicorn进程的反向代理

在思考如何完成这项工作时,我产生了以下问题:

据我所知,WebSocket是一种持久连接。既然一切都通过反向代理Nginx进行,那么Unicorn工作进程如何维护到客户端浏览器的websocket连接呢?Nginx是否会维护每个浏览器websocket连接到哪个Unicorn进程并充当某种中介的状态?在Unicorn进程中保持持久websocket连接是否会阻止整个工作进程


使用Rails实现国际象棋(使用WebSocket)有推荐的方法吗?

nginx不会使用WebSocket。你确定不能用AJAX实现这一点吗?如果您确实需要推送功能,您可以尝试围绕Comet方法构建的功能:

Faye是在rails中实现comet的一颗非常好的宝石:

使用nginx将Unicorn的同步处理与异步交付连接起来,这意味着nginx端的某些逻辑至少在我看来有些尴尬。最多——不可能

有一个关于私人酒吧gem的Railscast,它使用瘦Web服务器。它更适合这个任务:它是异步的,能够用基于事件的IO处理许多并发请求。所以我建议你用Thin替换Unicorn或者并排安装Thin


Puma webserver也可能是一个选项,但是,我不能提供更多信息。

nginx不支持WebSocket。nginx从1.3.13版起就支持WebSocket。用户782220最终决定做什么?