我正在考虑使用Rails实现国际象棋(需要websockets),并且在使用Nginx作为一系列Unicorn进程的反向代理的生产部署中。
在思考如何使这项工作导致我有以下问题:
据我所知websockets是一个持久的连接。 由于一切都通过反向代理Nginx的一个独angular兽工作进程如何保持websocket连接到客户端浏览器? Nginx会保持每个浏览器websocket所连接的Unicorn进程的状态,并作为一种中介吗? 在独angular兽进程中保持持续的websocket连接是否阻塞整个工作进程?
有没有推荐的方式来实现国际象棋(与Websockets)使用Rails?
Unicorn的同步处理与nginx的异步传递相结合意味着nginx方面的一些逻辑似乎至少让我感到尴尬。 至多不可能。
有一个Railscast关于使用瘦Web服务器的私人酒吧宝石。 它更适合于这个任务:它是异步的,它能够处理许多具有基于事件的IO的并发请求。 所以我建议你用Thin替换Unicorn或者并排安装Thin。
彪马网络服务器也可能是一个选择,但是,我不能给更多的信息。
nginx不会做websockets。 你确定你不能用AJAX做这个吗? 如果你真的需要推送能力,你可以尝试围绕Comet方法: http : //en.wikipedia.org/wiki/Comet_(programming)
Faye是实现彗星轨道的一个很好的宝石: http : //faye.jcoglan.com/