sgcWebSockets 2023.2.0 sürümünden itibaren HTTP/1 İstemcisi iyileştirildi ve SSE isteklerini destekliyor. SSE'nin Sunucu bileşenlerinde zaten desteklendiğini ancak istemcide desteklenmediğini unutmayın.
SSE (Server-Sent Events), bir sunucudan istemcinin tarayıcısına anlık bildirimleri verimli bir şekilde almaya yönelik bir web teknolojisidir. Bir web sayfasının, sürekli sorgulamaya gerek kalmadan bir sunucudan gerçek zamanlı güncellemeler almasına olanak tanıyan bir standarttır. SSE genellikle sohbet uygulamaları, spor skorları, finansal veriler ve diğerleri gibi senaryolar için gerçek zamanlı güncellemeler sağlamak amacıyla kullanılır.
SSE, tek bir HTTP bağlantısı üzerinden çalışır ve tarayıcı bu bağlantıyı otomatik olarak açar ve sürdürür. Sunucu, istemci bağlı kaldığı sürece açık tutulan bu bağlantıyı kullanarak istemciye güncellemeler gönderir.
SSE İstemcisi
TsgcHTTP1Client, sunucu ile istemci arasında bir Olay Akışı (Event Stream) başlatmak için bir HTTP isteği gönderen GetSSE adında yeni bir metoda sahiptir. İstemci sunucudan her yeni akış aldığında, OnSSEMessage olayı metin mesajının içeriğiyle birlikte çağrılır.
Aşağıda basit bir örnek bulabilirsiniz.
oHTTP := TsgcHTTP1Client.Create(nil);
oHTTP.OnSSEMessage := OnSSEMessageEvent;
oHTTP.GetSSE('https://www.esegece.com/sse.php');
procedure OnSSEMessageEvent(Sender: TObject; const aMessage: string; var Cancel: Boolean);
begin
DoLog(aMessage);
end;
Tam kaynak demosu ve Windows için derlenmiş proje aşağıdan indirilebilir
