ruby-on-rails – 服务器发送的事件和Rails流
我正在试验Rails 4 ActionController :: Live和Server Sent事件.我使用的是MRI 2.0.0和Puma. 对于我可以看到,每个连接的客户端保持与服务器的活动连接.我想知道是否可以利用SSEs,而不保持所有响应流的运行. 美洲狮管理使用线程的多个连接,我想象连接数量有限制. 有没有例子? 另外,我通常在nginx反向代理后面运行Rails应用服务器.它需要任何特定的设置? 最佳答案
SSEs的构建方式是由客户端打开与服务器的连接,然后将该服务器打开,直到服务器发送一些数据.这是SSE规范的一部分,而不是ActionController :: Live的特定事项.它与长时间轮询有效相同,但是在返回第一位数据之后连接不被关闭,并且浏览器内置机制.
因此,可以实现的唯一方法是通过将多个开放的客户端连接到无限期坐在那里的网络服务器.至于需要什么资源来处理它们,我不确定,因为我还没有试图对此进行基准测试,但如果您拥有许多用户,那么Puma将需要足够的服务器来保持数千个连接一页打开 美洲狮的默认限制是16个并发连接.关于设置Rails的SSEs的几个博客帖子提到了这个更大的价值,但没有一个建议这个更高的值应该是什么.他们确实提到,DB连接的数量将需要相同,因为每个Rails线程都保持一个运行.听起来像一种昂贵的方式来运行东西. “运行基准”是唯一的答案. 我没有评论反向代理,因为我没有尝试过,但是SSE是通过标准HTTP完成的,我不应该认为它需要任何特殊的设置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 乘客2.2.4,nginx 0.7.61和SSL
- ruby-on-rails – 带有nginx ddos??保护的Ruby on rails
- Linode更新-禁止使用Rails和Passenger Nginx 403
- ruby-on-rails – 在ubuntu 14.04上使用passenger-install
- nginx – 如何在不解密的情况下路由HTTPS加密数据包?
- django – 将应用程序级用户名/用户ID注入nginx/Apache日志
- /etc/nginx/nginx.conf:76中的未知指令“ rtmp”
- Nginx未知指令为passenger_root
- 通过suburi的单个域隔离多个nginx ssl应用程序的策略?
- node.js – 哪个最有效:通过nginx或节点通过nginx反向代理