В recent question кто-то отметил, что Firebase pricing documentation состояния: запросы APIПроводятся ли потоки REST-потоков Firebase против ограничения одновременного подключения?
REST не засчитываются свои пределы соединения
я понимаю (и ценю) это утверждение за то, что он, кажется, предназначен для : Запросы GET, PUT, POST и DELETE в отношении REST API обычно используются для операций в режиме реального времени для данных, таких как загрузка данных для резервных или объемных вычислений. Обычно это нечастые, относительно короткоживущие операции и, как правило, должны затмевать количество подключений к данным в режиме реального времени.
Но это другое, если посмотреть на Firebase's REST streaming API. В отличие от остальной части REST API потоковая передача явно предназначена для соединений данных реального времени.
В соответствии с приведенной выше документацией эти соединения не должны считаться с лимитом соединения. Но в соответствии с comment by a Firebase developer on Google Groups:
одновременно [соединений] в реальное время, клиенты или потокового REST
Часть я подчеркнул, кажется, предполагает, что клиенты, использующие потоковый REST API сделать подсчета против предела соединения.
Чтобы проверить, я написал # клиент небольшого C, который использует потоковый API Firebase REST для мониторинга узла:
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 считаются параллельным соединением. Может кто-то подтвердить это или обнаружить недостаток в моем тесте?