2015-01-30 4 views
8

В 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 считаются параллельным соединением. Может кто-то подтвердить это или обнаружить недостаток в моем тесте?

ответ

6

Ваши предположения здесь верны. Потоки звонки через API REST делают подсчет против вашего счета, поскольку они логически должны (то есть они открывают соединение сокета и создают дополнительную нагрузку). Непотекающие вызовы против REST API do не считать параллельными соединениями.

Я посмотрю на страницу ценообразования и посмотрю, можно ли сделать текст более понятным.