Ruby on rails Rails SSE主动/被动等待

Ruby on rails Rails SSE主动/被动等待,ruby-on-rails,ruby,multithreading,ruby-on-rails-4,server-sent-events,Ruby On Rails,Ruby,Multithreading,Ruby On Rails 4,Server Sent Events,我正在用ruby和rails编写应用程序。我正在尝试使用SSE为用户发送通知。所有的工作,但我想做被动等待HTTP连接,不知道如何。我认为每个请求都是在同一个线程上处理的,这就是为什么当我打开连接并等待消息时,应用程序会停止工作,因为服务器会等待另一个请求。我怎么做?一种方法是进行被动等待,另一种方法是在其他线程上处理每个请求。你知道如何解决这个问题吗?一个更常见的术语和方法是comet或long polling。SSE是HTML5特有的,因此更新。我还不确定是否有使用SSE的Rails解决方案

我正在用ruby和rails编写应用程序。我正在尝试使用SSE为用户发送通知。所有的工作,但我想做被动等待HTTP连接,不知道如何。我认为每个请求都是在同一个线程上处理的,这就是为什么当我打开连接并等待消息时,应用程序会停止工作,因为服务器会等待另一个请求。我怎么做?一种方法是进行被动等待,另一种方法是在其他线程上处理每个请求。你知道如何解决这个问题吗?

一个更常见的术语和方法是comet或long polling。SSE是HTML5特有的,因此更新。我还不确定是否有使用SSE的Rails解决方案,但如果您选择非Rails解决方案,则构建在EventMachine之上的Goliath允许您轻松实现SSE。下面是一个相当完整的教程:

如果你想使用Rails和Comet解决方案,我知道的两个项目是OrbitedGem和Faye

具体地说,关于应用程序停止工作的问题,这是因为在开发环境中,您只运行一个进程,而应用程序一次只处理一个连接。前面提到的gems通过使用消息服务器来管理打开的连接,将控制权返回到Rails应用程序,使其不再阻塞,从而缓解了这种情况。在生产环境中,您可以在Apache/Nginx下启动10、20个工作人员,但这限制了您的连接数量