【发布时间】:2012-05-15 03:57:21
【问题描述】:
我正在编写一个应用程序来跟踪在特定任务的用户之间推送的内容。我正在考虑使用 WebSockets 发送新内容,因为它们可供当前使用该应用程序执行该给定任务的所有用户使用。
我在 Rails 上写这篇文章,客户端应用程序在 iOS 上(可能也会在 Android 上)。恐怕这个 WebSocket 解决方案可能无法很好地扩展。在决定使用 WebSockets 还是使用某种轮询解决方案时,我正在寻求一些建议和要考虑的事情。
Ruby on Rails 服务器(如 Heroku)是否支持同时打开大量 WebSocket?为了争论,假设有一百万个连接。任何人都可以向我提供这些东西的任何材料吗?
如果我以这种方式构建服务器托管,是否会花费更多?
是否有可能同时维护数百万个 WebSocket?我觉得这可能不是最好的设计决策。
这是我第一次尝试正确的 Rails API。任何意见是极大的赞赏。谢谢。
【问题讨论】:
-
根据 Heroku 的说法,你得到(如果我没记错的话)每个 Dyno 约 600 个并发 websocket 连接。一百万个并发连接(同时运行,而不是一般的百万用户)将需要大约 1670 个 Dynos ......这是很多 Dynos,但它也是很多连接。您可能还需要隔离 Redis 和 DB 服务器(或您可能拥有的任何数据收集和 Pub/Sub 解决方案)。
标签: ruby-on-rails ruby html websocket em-websocket