Firebase 流式 REST 连接是否计入并发连接限制?
Do Firebase streaming REST connections count against the concurrent connection limit?
在 recent question someone pointed out that the Firebase pricing documentation 状态中:
REST API requests don't count towards your connection limits
我理解(并欣赏)此声明的含义:针对 REST API 的 GET、PUT、POST 和 DELETE 请求通常用于非实时操作在数据上,例如下载数据以进行备份或批量计算。这些通常是不频繁的、相对短暂的操作,通常应该使实时数据连接的数量相形见绌。
但是当我们看Firebase's REST streaming API时就不一样了。与 REST 的其余部分 API 不同,流式传输显然旨在用于实时数据连接。
根据上面引用的文档,这些连接不应计入连接限制。但是根据comment by a Firebase developer on Google Groups:
concurrent [connections] are real-time clients or streamed REST
我强调的部分似乎建议使用流式 REST API do 的客户端计入连接限制。
为了测试,我编写了一个使用 Firebase REST 流 API 来监控节点的小型 C# 客户端:
var url = "https://<my>.firebaseio.com/clock/.json";
var client = new WebClient();
client.Headers["Accept"] = "text/event-stream";
using (var stream = client.OpenRead(url)) {
using (var reader = new StreamReader(stream)) {
string line = null;
while (null != (line = reader.ReadLine())) {
(DateTime.Now.ToShortTimeString() + line).Dump();
}
}
}
启动该程序大约 15 分钟后,我的 Firebase 仪表板中的并发连接数确实增加了 1。运行 第二个实例,再次增加了仪表板中的并发连接数。
所以这个测试似乎证实了在 Google 组上暗示的内容:REST 流客户端算作并发连接。有人可以证实这一点或发现我的测试中的缺陷吗?
你这里的假设是正确的。 Streaming 通过 REST 进行的调用 API 确实会按逻辑应计入您的并发计数(即它们保持打开的套接字连接并产生额外的负载)。针对 REST API 的非流式调用 不 算作并发连接。
我会查看定价页面,看看我们是否可以使文本更清晰一些。
在 recent question someone pointed out that the Firebase pricing documentation 状态中:
REST API requests don't count towards your connection limits
我理解(并欣赏)此声明的含义:针对 REST API 的 GET、PUT、POST 和 DELETE 请求通常用于非实时操作在数据上,例如下载数据以进行备份或批量计算。这些通常是不频繁的、相对短暂的操作,通常应该使实时数据连接的数量相形见绌。
但是当我们看Firebase's REST streaming API时就不一样了。与 REST 的其余部分 API 不同,流式传输显然旨在用于实时数据连接。
根据上面引用的文档,这些连接不应计入连接限制。但是根据comment by a Firebase developer on Google Groups:
concurrent [connections] are real-time clients or streamed REST
我强调的部分似乎建议使用流式 REST API do 的客户端计入连接限制。
为了测试,我编写了一个使用 Firebase REST 流 API 来监控节点的小型 C# 客户端:
var url = "https://<my>.firebaseio.com/clock/.json";
var client = new WebClient();
client.Headers["Accept"] = "text/event-stream";
using (var stream = client.OpenRead(url)) {
using (var reader = new StreamReader(stream)) {
string line = null;
while (null != (line = reader.ReadLine())) {
(DateTime.Now.ToShortTimeString() + line).Dump();
}
}
}
启动该程序大约 15 分钟后,我的 Firebase 仪表板中的并发连接数确实增加了 1。运行 第二个实例,再次增加了仪表板中的并发连接数。
所以这个测试似乎证实了在 Google 组上暗示的内容:REST 流客户端算作并发连接。有人可以证实这一点或发现我的测试中的缺陷吗?
你这里的假设是正确的。 Streaming 通过 REST 进行的调用 API 确实会按逻辑应计入您的并发计数(即它们保持打开的套接字连接并产生额外的负载)。针对 REST API 的非流式调用 不 算作并发连接。
我会查看定价页面,看看我们是否可以使文本更清晰一些。