Rate limiting diye bir sey duymadiysaniz o da sizden hizmet alan silikon vadisindeki sirketlerin ayabi olsun
Bak şimdi şöyle oluyor,
30 saniyede 1 mesaj yerine, 1 saniyede maksimum 3 mesaj yapıyorsun. Kalan mesajları da queue'ya alıyorsun javascript ile. Timeout bitip, POST'lar resolve'lanınca; queue devam ediyor. Yani sen saniyede 100000000000000 mesaj bile yollasan "beklenen UI" üzerinden; saniyede maksimum 3 mesaj sunucuya varıyor. Kalanlar sırada bekliyor.
Ha Egemen, direkt POST edilirse bu javascript kodu bypass edilip, konsol üzerinden; postman ile filan? Şimdi bu yöntem ile son kullanıcıdan ben saniyede en fazla 3 mesaj bekliyorum. Bunu sunucu tarafında ne olur olmaz, masum zarar görmesin saniyede 5 olarak limitledim; olur ya hani Javascript sonuçta. Ben şahsım adına çok da güvenmem bazı durumlarda. E baktım sunucuya X user_id'sinden saniyede 5'den fazla geliyor (ki aslında 3 bekliyorum, +2 gönlümden koptu). Hop, çakıyorsun 30 saniyelik chat engelini. Spam'lediği tüm veriler düşüyor forbidden'a.
Al sana mis gibi sistem.
WhatsApp da, facebook da; hemen her live sistem bu yolla çalışır bu arada.
Yalnız Egemen, bu mobil app değil ki? Queue varken browser refresh yerse ne olacak?
Localstorage üzerinde hashmap içinde tutuyoruz bu işlemlerin hepsini. Refresh yese bile, bitmemiş POST varsa, POST etmeye devam ediyor.
30 saniyede 1 mesaj aşırı katı bir yöntem.