2015-01-30 16 views
8

Trong một recent question ai đó chỉ ra rằng Firebase pricing documentation trạng thái: yêu cầu APIKết nối REST phát trực tiếp Firebase có được tính vào giới hạn kết nối đồng thời không?

REST của không được tính vào giới hạn kết nối của bạn

Tôi hiểu (và đánh giá cao) tuyên bố này cho những gì nó dường như có nghĩa là cho : Yêu cầu GET, PUT, POST và DELETE đối với API REST thường được sử dụng cho các hoạt động không theo thời gian thực trên dữ liệu, chẳng hạn như tải xuống dữ liệu để sao lưu hoặc tính toán hàng loạt. Đây thường là các hoạt động không thường xuyên, tương đối ngắn ngủi và nói chung sẽ làm giảm số lượng kết nối dữ liệu thời gian thực.

Nhưng điều đó khác khi chúng tôi xem Firebase's REST streaming API. Không giống như phần còn lại của API REST, luồng được dự định rõ ràng cho các kết nối dữ liệu thời gian thực.

Theo tài liệu được trích dẫn ở trên, các kết nối này sẽ không được tính vào giới hạn kết nối. Tuy nhiên, theo một comment by a Firebase developer on Google Groups:

đồng thời [kết nối] là real-time khách hàng hoặc xem trực tiếp REST của

Phần tôi nhấn mạnh dường như cho thấy rằng khách hàng sử dụng streaming API REST làm đếm chống lại giới hạn kết nối.

Để kiểm tra, tôi đã viết một nhỏ C client # có sử dụng các căn cứ hỏa lực REST của luồng API để theo dõi một nút:

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(); 
     } 
    } 
} 

Khoảng 15 phút sau khi bắt đầu chương trình này kết nối đồng thời trong bảng điều khiển căn cứ hỏa lực của tôi thực sự đã tăng 1. Chạy một thể hiện thứ hai, tăng số lượng kết nối đồng thời trong bảng điều khiển một lần nữa.

Vì vậy, kiểm tra này dường như xác nhận những gì được gợi ý trên Google Groups: Các máy khách phát REST được tính là kết nối đồng thời. Ai đó có thể xác nhận điều này hoặc phát hiện một lỗ hổng trong thử nghiệm của tôi không?

Trả lời

6

Giả định của bạn ở đây là chính xác. Phát trực tuyến cuộc gọi qua API REST sẽ tính vào số lượng đồng hành của bạn được tính khi chúng hợp lý nên (nghĩa là chúng đang mở kết nối ổ cắm và tạo thêm tải). Các cuộc gọi không trực tuyến đối với API REST thực hiện không được tính là các kết nối đồng thời.

Tôi sẽ xem xét trang giá và xem liệu chúng tôi có thể làm cho văn bản rõ ràng hơn một chút hay không.

Các vấn đề liên quan