İ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.
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.
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.
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.