TsgcWebSocketClient | İstemci Bağlantı Açma

İstemciniz bir sunucuya bağlanacak şekilde yapılandırıldıktan sonra, yeni bir bağlantı açmak için 3 farklı seçenek vardır.

 

Active Özelliği

Yeni bir bağlantı açmanın en kolay yolu, Active özelliğini true olarak ayarlamaktır. Bu, bileşen yapılandırmasını kullanarak sunucuya bağlanmayı dener.

Active özelliğini false olarak ayarlarsanız, etkinse bağlantıyı kapatır.

Bu yöntem, çağıranla aynı iş parçacığında çalıştırılır. Yani bunu Main Thread'den çağırırsanız, yöntem uygulamanın Main Thread'inde çalıştırılır.

 

Bağlantı Açma


oClient := TsgcWebSocketClient.Create(nil);
...
oClient.Active := true;

Active = true çağırdığınızda, istemci hâlâ bağlanıyor olabileceğinden sunucuya yine de herhangi bir veri gönderemezsiniz. Önce OnConnect olayı tetiklenene kadar beklemeniz gerekir, ardından sunucuya mesaj göndermeye başlayabilirsiniz.

 

 

Bağlantıyı Kapatma


oClient.Active := false;

Active = false çağırdığınızda, bu koddan hemen sonra bağlantının zaten kapatıldığından emin olamazsınız, bu nedenle OnDisconnect olayı tetiklenene kadar beklemelisiniz.

 

 

Start/Stop yöntemleri

Sunucuya bağlanmak/sunucudan bağlantıyı kesmek için Start() veya Stop() çağırdığınızda, çağrı ikincil bir iş parçacığında yürütülür, böylece çağrıldığı iş parçacığını engellemez. Bir sunucuya bağlanmak ve aşağıdaki kodunuzun devam etmesine izin vermek istiyorsanız bu yöntemi kullanın.

 

Bağlantı Açma


oClient := TsgcWebSocketClient.Create(nil);
...
oClient.Start();

Start() çağırdığınızda, istemci hâlâ bağlanıyor olabileceği için sunucuya henüz herhangi bir veri gönderemezsiniz. Önce OnConnect olayı tetiklenene kadar beklemeniz gerekir, ardından sunucuya mesaj göndermeye başlayabilirsiniz.

 

Bağlantıyı Kapatma


oClient.Stop();

Stop() çağrısı yaptığınızda, bu koddan hemen sonra bağlantının zaten kapalı olduğundan emin olamazsınız, bu nedenle OnDisconnect olayı tetiklenene kadar beklemelisiniz.

 

 

Connect/Disconnect yöntemleri

Sunucuya bir bağlantı açmak/kapatmak için Connect() veya Disconnect() çağırdığınızda, çağrı, çağrıldığı aynı iş parçacığında yürütülür, ancak işlem tamamlanana kadar bekler. İşlem tamamlanana kadar beklenecek maksimum süreyi tanımlamak için bir Timeout ayarlamalısınız (varsayılan olarak 10 saniye).

 

Örnek: sunucuya bağlanın ve en fazla 5 saniye bekleyin


oClient := TsgcWebSocketClient.Create(nil);
...
if oClient.Connect(5000) then
  oClient.WriteData('Hello from client')
else
  Error();

Connect() yöntemi başarılı bir sonuç döndürürse, bağlantı canlı olduğu için sunucuya zaten bir mesaj gönderebilirsiniz.

 

 

Örnek: sunucudan bağlantıyı kes ve 10 saniyeye kadar bekle


if oClient.Disconnect(10000) then
  ShowMessage('Disconnected')
else
  ShowMessage('Not Disconnected');

Disconnect() yöntemi başarılı bir sonuç döndürürse, bu bağlantının zaten kapatıldığı anlamına gelir.

 

OnBeforeConnect olayı, istemci sunucuya bağlanmaya çalışmadan önce sunucu bağlantı özelliklerini özelleştirmek için kullanılabilir.