通过 Faye 在 Rails 应用程序上进行实时聊天,但通过 Apache 在乘客上进行实时聊天
Posted
技术标签:
【中文标题】通过 Faye 在 Rails 应用程序上进行实时聊天,但通过 Apache 在乘客上进行实时聊天【英文标题】:Live chat on Rails app through Faye but on Passenger with Apache 【发布时间】:2014-08-08 15:04:39 【问题描述】:我们的网站目前正在使用 Apache 在Passenger 上运行我们的Rails Web 应用程序。
最近,需要进行实时聊天。因此,我们计划按照本文 (http://code.tutsplus.com/tutorials/how-to-use-faye-as-a-real-time-push-server-in-rails--net-22600) 部署 Faye。
但是,由于 Apache 不支持 websocket,我们无法使用任何此类实现。
我们不希望更改网络服务器,因为这将涉及额外的测试和迁移工作。有没有其他方法可以解决这个问题?
感谢 Rails 专家提供的任何帮助。
-贾克斯
【问题讨论】:
【参考方案1】:不知道答案,尽管我在某处读到你应该使用 redis for faye 与 apache/passenger 一起运行它,因为它们不能在单个进程中运行并共享内存,请查看 faye-redis gem。可能 faye 服务器应该作为单独的进程运行,并且 Apache 配置为向其发送 ':9292/faye'。
【讨论】:
这里声明:faye.jcoglan.com/ruby.html。我引用“Faye 支持的一些服务器,例如Passenger,使用多进程模型,而不是在同一进程中使用线程或事件。对于那些服务器,默认的内存引擎将不起作用;您应该使用多进程模型。 - 流程引擎,例如 Redis 后端。”以上是关于通过 Faye 在 Rails 应用程序上进行实时聊天,但通过 Apache 在乘客上进行实时聊天的主要内容,如果未能解决你的问题,请参考以下文章
将 Nodejs Faye-Client 连接到 Rails Faye 服务器
对选择 Faye 或 Rails 4 Actioncontroller::Live 的困惑
Faye Websocket 错误 Rails 2.2.2(生产)
Websocket rails (Faye-websocket) 握手错误代码 200 - AWS ElasticBeanstalk、nginx、puma