Une fois votre client configuré pour se connecter à un serveur, il existe 3 options différentes pour ouvrir une nouvelle connexion.
La façon la plus simple d'ouvrir une nouvelle connexion est de définir la propriété Active à true. Cela tentera de se connecter au serveur en utilisant la configuration du composant.
Si vous définissez la propriété Active sur false, elle fermera la connexion si elle est active.
Cette méthode est exécutée dans le même thread que l'appelant. Donc si vous l'appelez depuis le Thread Principal, la méthode sera exécutée dans le Thread Principal de l'application.
Ouvrir la connexion
oClient := TsgcWebSocketClient.Create(nil);
...
oClient.Active := true;
Lorsque vous définissez Active = true, vous ne pouvez toujours pas envoyer de données au serveur car le client est peut-être encore en cours de connexion. Vous devez d'abord attendre que l'événement OnConnect soit déclenché, puis vous pouvez commencer à envoyer des messages au serveur.
Fermer la connexion
oClient.Active := false;
Lorsque vous appelez Active = false, vous ne pouvez pas être sûr que la connexion est déjà fermée juste après ce code ; vous devez donc attendre que l'événement OnDisconnect soit déclenché.
Lorsque vous appelez Start() ou Stop() pour vous connecter/déconnecter du serveur, l'appel est exécuté dans un thread secondaire, il ne bloque donc pas le thread depuis lequel il est appelé. Utilisez cette méthode si vous souhaitez vous connecter à un serveur et laisser le code suivant continuer à s'exécuter.
Ouvrir la connexion
oClient := TsgcWebSocketClient.Create(nil);
...
oClient.Start();
Lorsque vous appelez Start(), vous ne pouvez toujours pas envoyer de données au serveur car le client peut encore être en train de se connecter. Vous devez d'abord attendre que l'événement OnConnect soit déclenché, puis vous pourrez commencer à envoyer des messages au serveur.
Fermer la connexion
oClient.Stop();
Lorsque vous appelez Stop(), vous ne pouvez pas être sûr que la connexion est déjà fermée juste après ce code, donc vous devez attendre que l'événement OnDisconnect soit déclenché.
Lorsque vous appelez Connect() ou Disconnect() pour ouvrir/fermer une connexion au serveur, l'appel est exécuté dans le même thread où il est appelé, mais il attend jusqu'à la fin du processus. Vous devez définir un Timeout pour définir le délai maximal à attendre jusqu'à la fin du processus (par défaut 10 secondes).
Exemple : se connecter au serveur et attendre jusqu'à 5 secondes
oClient := TsgcWebSocketClient.Create(nil);
...
if oClient.Connect(5000) then
oClient.WriteData('Hello from client')
else
Error();
Si la méthode Connect() retourne un résultat réussi, vous pouvez déjà envoyer un message au serveur car la connexion est active.
Exemple : se déconnecter du serveur et attendre jusqu'à 10 secondes
if oClient.Disconnect(10000) then
ShowMessage('Disconnected')
else
ShowMessage('Not Disconnected');
Si la méthode Disconnect() retourne un résultat réussi, cela signifie que la connexion est déjà fermée.
L'événement OnBeforeConnect peut être utilisé pour personnaliser les propriétés de connexion du serveur avant que le client essaie de s'y connecter.