Una vez que su cliente está configurado para conectarse a un servidor, hay 3 opciones diferentes para abrir una nueva conexión.
La forma más sencilla de abrir una nueva conexión es establecer la propiedad Active en true. Esto intentará conectarse al servidor utilizando la configuración del componente.
Si establece la propiedad Active en false, cerrará la conexión si está activa.
Este método se ejecuta en el mismo hilo que el llamador. Por tanto, si lo invoca desde el hilo principal, el método se ejecutará en el hilo principal de la aplicación.
Abrir conexión
oClient := TsgcWebSocketClient.Create(nil);
...
oClient.Active := true;
Cuando llama a Active = true, todavía no puede enviar datos al servidor porque el cliente puede estar aún conectándose. Primero debe esperar hasta que se active el evento OnConnect y, a continuación, podrá comenzar a enviar mensajes al servidor.
Cerrar conexión
oClient.Active := false;
Cuando llama a Active = false, no puede estar seguro de que la conexión ya esté cerrada justo después de este código, por lo que debe esperar hasta que se dispare el evento OnDisconnect.
Cuando llama a Start() o Stop() para conectarse/desconectarse del servidor, la llamada se ejecuta en un hilo secundario, por lo que no bloquea el hilo desde el que se invoca. Utilice este método si desea conectarse a un servidor y permitir que su código continúe a continuación.
Abrir conexión
oClient := TsgcWebSocketClient.Create(nil);
...
oClient.Start();
Cuando llama a Start(), todavía no puede enviar datos al servidor porque el cliente puede estar aún conectándose. Primero debe esperar hasta que se active el evento OnConnect y, a continuación, puede comenzar a enviar mensajes al servidor.
Cerrar conexión
oClient.Stop();
Cuando llama a Stop(), no puede estar seguro de que la conexión ya esté cerrada justo después de este código, por lo que debe esperar hasta que se active el evento OnDisconnect.
Cuando se llama a Connect() o Disconnect() para abrir/cerrar una conexión con el servidor, la llamada se ejecuta en el mismo hilo donde se invoca, pero espera hasta que el proceso finalice. Debe establecer un Timeout para definir el tiempo máximo de espera hasta que el proceso finalice (por defecto, 10 segundos).
Ejemplo: conectar al servidor y esperar hasta 5 segundos
oClient := TsgcWebSocketClient.Create(nil);
...
if oClient.Connect(5000) then
oClient.WriteData('Hello from client')
else
Error();
Si el método Connect() devuelve un resultado exitoso, ya puede enviar un mensaje al servidor porque la conexión está activa.
Ejemplo: desconectarse del servidor y esperar hasta 10 segundos
if oClient.Disconnect(10000) then
ShowMessage('Disconnected')
else
ShowMessage('Not Disconnected');
Si el método Disconnect() devuelve un resultado satisfactorio, significa que la conexión ya está cerrada.
OnBeforeConnect el evento se puede usar para personalizar las propiedades de conexión del servidor antes de que el cliente intente conectarse a él.