繁体   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