连接是如何计算的?
假设我有一个 Web 应用程序,其中一个负载向所有连接的客户端发送消息,假设我有 5 个连接的客户端。这是否意味着只要带有 Web 应用程序的浏览器选项卡处于打开状态,它将计为 1 个连接,这意味着我将有 6 个并发连接,这计入您在定价页面中定义为“连接”的内容?
如果不是,请解释您如何计算“连接”。谢谢
连接是如何计算的?
假设我有一个 Web 应用程序,其中一个负载向所有连接的客户端发送消息,假设我有 5 个连接的客户端。这是否意味着只要带有 Web 应用程序的浏览器选项卡处于打开状态,它将计为 1 个连接,这意味着我将有 6 个并发连接,这计入您在定价页面中定义为“连接”的内容?
如果不是,请解释您如何计算“连接”。谢谢
自从我浏览 thinkster.io angular+firebase 教程以来,这个问题一直困扰着我,我看到我的 firebase 分析选项卡显示并发峰值为 6,尽管我只记得打开了一页。我回顾了代码,并认为这可能与教程如何为您的 Firebase 中的每个位置创建一个新的 Firebase(url) 有关。
我想测试创建一个新的 Firebase(url) 与获取根引用然后访问 .child() 位置之间的区别。我的理论是 new Firebase(url) 每次都会创建一个新连接,而 .child() 会重新使用现有连接。
为简单起见,我只是将所有内容放在生成代码的主控制器中。
为了测试使用 new Firebase() 创建的连接,我执行了以下操作:
$scope.fb_root = $firebase(new Firebase(FBURL_NEW));
$scope.fb_root_apps = $firebase(new Firebase(FBURL_NEW + '/apps'));
$scope.fb_root_someApp = $firebase(new Firebase(FBURL_NEW + '/apps/someApp'));
$scope.fb_root_users = $firebase(new Firebase(FBURL_NEW + '/users'));
$scope.fb_root_mike = $firebase(new Firebase(FBURL_NEW + '/users/mike'));
为了测试使用 ref.$child() 创建的连接,我执行了以下操作:
$scope.fb_child = $firebase(new Firebase(FBURL_CHILD));
$scope.fb_child_apps = $scope.fb_child.$child("apps");
$scope.fb_child_someApp = $scope.fb_child_apps.$child("someApp");
$scope.fb_child_users = $scope.fb_child.$child("users");
$scope.fb_child_mike = $scope.fb_child_users.$child("mike");
然后我将这些对象绑定在我的视图中,以便我可以看到它们,然后我通过我的 firebase forge 更新数据并在我的应用程序上实时观看数据更新。
我将本地应用程序打开为 17 个浏览器选项卡,希望大量选项卡会夸大连接方法之间的任何差异。
我发现每个选项卡只为每个 Firebase 数据库打开了一个返回到 Firebase 的 Web 套接字连接。所以在测试结束时,两种方法都产生了相同的 17 个连接的峰值计数。
通过这个简单的测试,我认为可以肯定地说 Firebase JS 库在管理其连接方面做得很好。
无论您的代码多次调用 new Firebase(),还是通过 .child() 引用子位置,就您的计量而言,该库只会创建一个连接。只要您的应用程序处于打开状态,该连接就会一直在线。
所以在你的例子中 - 是的,我相信你会看到 6 个并发连接,1 个用于有人发送消息的应用程序,5 个用于接收消息的应用程序。
值得一提的另一件事是,Firebase 根据当月使用量的 95% 来衡量付费计划的连接。这列在他们定价页面的常见问题解答部分@ https://www.firebase.com/pricing.html
2016 年 3 月 11 日更新:Firebase 似乎不再根据 95% 来衡量连接。相反,第 101 个并发连接被拒绝。
https://www.firebase.com/pricing.html:
我们所有的计划都对数据库连接的数量有硬性限制。我们的 Free 和 Spark 计划限制为 100 个。限制不能提高。所有其他计划都有 10,000 个数据库连接的礼貌限制。如果您向我们发送电子邮件至 firebase-support@google.com,则可以将其删除以永久允许无限连接。我们施加此礼貌限制的原因是为了防止滥用并确保我们准备好处理我们最大的客户。请至少提前 24 小时联系我们,以便我们取消此限制并确保我们有足够的容量来满足您的需求。