TsgcWebSocketClient | İstemci Özel Durumları

Bazen iletişimde hatalar olur: sunucu, yetkili olmadığı için veya bir mesaj doğru biçime sahip olmadığı için bir bağlantıyı kesebilir. Hataların yakalandığı 2 olay vardır.

OnError

Bu olay, geçersiz mesaj türü, geçersiz utf8 dizesi... gibi WebSocket protokolünde her hata olduğunda tetiklenir.

OnError ayrıca, WriteData, WriteAndWaitData veya Ping istemci bağlı olmadığı için ya da, WriteData ve WriteAndWaitData için, WebSocket handshake'i henüz tamamlanmadığı için bir mesaj gönderemediğinde Connection = nil ile de tetiklenir. Bu durumda Error parametresi Data not sent, the client is not connected or its handshake has not completed. olur. Çağırana herhangi bir istisna fırlatılmaz ve istemcinin bağlantısı kesilmez, bu yüzden bu olayda Connection'ı kullanmadan önce her zaman nil olup olmadığını kontrol edin.


procedure OnError(Connection: TsgcWSConnection; const Error: string);
begin
  WriteLn('#error: ' + Error);
end;

 

OnException

Bu olay, etkin olmayan bir sokete yazma veya var olmayan bir nesneye erişme gibi her özel durum oluştuğunda tetiklenir.

 


procedure OnException(Connection: TsgcWSConnection; E: Exception);
begin
  WriteLn('#exception: ' + E.Message);
end;

Varsayılan olarak, bir bağlantı sunucu tarafından kapatıldığında, bir istisna tetiklenir. Bu istisnaların tetiklenmesini istemiyorsanız, Options.RaiseDisconnectExceptions öğesini devre dışı bırakın.

Options.RaiseDisconnectExceptions, istemci bağlı olmadığı için gönderilemeyen mesajların OnError bildirimini de denetler. Bu mesajları önceki sürümlerin yaptığı gibi sessizce düşürmek için bunu False olarak ayarlayın.